0218/08/22--mysql数据库

SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id;

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

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

SELECT vend_id,COUNT(*) AS num_prod FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING COUNT(*)>=2;

SELECT vend_id,COUNT(*) AS num_prod FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING num_prod>=2;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(item_price*quantity)>=50;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING ordertotal>=50;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(item_price*quantity)>=50 ORDER BY order_num;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING ordertotal>=50 ORDER BY order_num;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING SUM(item_price*quantity)>=50 ORDER BY ordertotal;

SELECT order_num,SUM(item_price*quantity) AS ordertotal FROM orderitems GROUP BY order_num HAVING ordertotal>=50 ORDER BY ordertotal;

过滤、分组和排序

过滤:WHERE/HAVING

分组:GROUP BY 

排序:ORDER BY 

SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id;

cust_id

orders

10001 2
10003 1
10004 1
10005 1

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

cust_id orders
10001 2

关于WHERE 和 HAVING

WHERE 过滤行,HAVING 过滤分组

SELECT vend_id,prod_price FROM products;

vend_id prod_price
1001 5.99
1001 9.99
1001 14.99
1003 13.00
1003 10.00
1003 2.50
1002 3.42
1005 35.00
1005 55.00
1002 8.99
1003 50.00
1003 4.49
1003 2.50
1003 10.00

SELECT vend_id,COUNT(*) AS num_prod FROM products GROUP BY vend_id;

vend_id num_prod                                                                                 
1001 3
1002 2
1003 7
1005 2

SELECT vend_id,prod_price FROM products WHERE prod_price>=10;

vend_id prod_price
1001 14.99
1003 13.00
1003 10.00
1005 35.00
1003 55.00
1003 50.00
1003 10.00

SELECT vend_id,COUNT(*) AS num_prod FROM products WHERE prod_price>=10 GROUP BY vend_id;

vend_id

num_prod

1001 1
1003 4
1005 2

SELECT vend_id,COUNT(*) AS num_prod FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING COUNT(*)>=2;

vend_id num_prod
1003 4
1005 2

猜你喜欢

转载自blog.csdn.net/qzw752890913/article/details/81948089