分组数据
廖家龙 用心听,不照做

分组数据

分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算

1)
SELECT vendid,COUNT(*) AS numprods
FROM products
GROUP BY vend_id;


2)WHERE过滤行,HAVING过滤分组

SELECT cust_id,COUNT() AS orders
FROM orders
GROUP BY cust_id
HAVING COUNT(
) >=2;

这里WHERE子句不起作用,因为过滤是基于分组聚集值而不是特定行值的

3)列出具有2个(含)以上、价格为10(含)以上的产品的供应商
SELECT vendid,COUNT() AS numprods
FROM products
WHERE prod_price >=10
GROUP BY vend_id
HAVING COUNT(
) >=2;

SELECT vendid,COUNT() AS numprods
FROM products
GROUP BY vend_id
HAVING COUNT(
) >=2;

4)


检索总计订单价格大于等于50的订单号和总计订单价格
SELECT ordernum,SUM(quantityitemprice) AS ordertotal
FROM orderitems
GROUP BY order_num
HAVING SUM(quantity
item_price) >= 50;

按总计订单价格排序输出:
SELECT ordernum,SUM(quantityitemprice) AS ordertotal
FROM orderitems
GROUP BY order_num
HAVING SUM(quantity
item_price) >= 50
ORDER BY ordertotal;

5)