[英]How to find customer with orders greater than X from single table
如何從單個表中查找訂單金額大於$ 2000的客戶姓名?
Customer :
custName custOrderVal
A 100
B 200
A 900
C 2400
A 1100
B 8000
select cust.custName from customer cust where cust.custOrderVal > 2000;
將不會顯示正確的數據。 有人可以指導我嗎?
通過使用HAVING
子句,像這樣:
SELECT custName
FROM Customer
GROUP BY custName
HAVING SUM(custOrderVal) > 2000
您需要使用GROUP BY
來獲取每個客戶的SUM
,然后使用HAVING
來限制結果(就像WHERE
子句一樣)。
詢問
DECLARE @t TABLE (custName VARCHAR(10),custOrderVal INT)
INSERT INTO @t
VALUES
('A',100), ('B',200),('A',900),('C',2400),
('A',1100),('B',8000),('D',1000),('F',500)
SELECT CustName
FROM @t
GROUP BY CustName
HAVING SUM(custOrderVal) > 2000
結果集
╔══════════╗
║ CustName ║
╠══════════╣
║ A ║
║ B ║
║ C ║
╚══════════╝
SELECT
custName,
SUM(custOrderVal) AS custOrderSum
FROM Customer
GROUP BY custName
HAVING custOrderSum>2000
每當需要過濾分組總計時,都可以使用HAVING
子句。
SELECT custName
FROM Customer
GROUP BY custName
HAVING SUM(custOrderVal) > 2000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.