the important thing is not to stop questioning

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

11.2 利用子查询进行过滤

SELECT cust_name, cust_contact FROM Customers WHERE cust_id IN (SELECT cust_id FROM Order WHERE order_num IN (SELECT order_num FROM OrderItems WHERE prod_id = 'RGAN01'));

11.3  作为计算字段使用子查询使用子查询的另一方法是创建计算字段。假如需要显示Customers表中每个顾客的订单总数。订单与相应的顾客ID存储在Orders表中。

执行这个操作,要遵循下面的步骤:  


从Customers表中检索顾客列表;
对于检索出的每个顾客,统计其在Orders表中的订单数目。


正如前两课所述,可以使用SELECT COUNT(*)对表中的行进行计数,并且通过提供一条WHERE子句来过滤某个特定的顾客ID,仅对该顾客的订单进行计数。例如,下面的代码对顾客1000000001的订单进行计数:  

输入▼

SELECT COUNT(*) AS orders
FROM Orders
WHERE cust_id = '1000000001';


要对每个顾客执行COUNT(*),应该将它作为一个子查询。请看下面的代码:  

输入▼

SELECT cust_name,
       cust_state,
       (SELECT COUNT(*)
        FROM Orders
        WHERE Orders.cust_id = Customers.cust_id) AS orders
FROM Customers
ORDER BY cust_name;

posted on   qook  阅读(139)  评论(0编辑  收藏  举报
(评论功能已被禁用)
 
点击右上角即可分享
微信分享提示