2013-06-29 73 views
0

上面我有一個表,看起來像這樣:SQL - 選擇列,如果其他列的總和爲總

id , name , price , date 

1 a  100  1.3.12 
2 b  230  1.3.12 
3 a  300  1.3.12 
4 c  1000  1.3.12 
5 b  160  1.3.12 
6 a  400  1.3.12 

我要顯示其總價格高於某個值的名稱,比方說500。 因此,如果a有100,300,400,那麼它的總數是800> 500 - >顯示。

但我想只用一個查詢來完成。到目前爲止,我設法讓這個查詢:

SELECT name SUM (price) AS total FROM table GROUP BY name 

但後來我需要爲了做一個更多的選擇總> 500

我該怎麼辦呢?先謝謝你。

+1

共爲800,不是嗎? –

+0

哈哈是的,但沒關係 –

回答

1

您應該使用HAVING子句條件應用到聚合函數:

SELECT name 
FROM  yourtable 
GROUP BY name 
HAVING SUM(price)>500 
1

使用having過濾

select name, sum(price) as total_price 
from your_table 
group by name 
having total_price > 500 
+0

這不是標準的,很可能不被廣泛支持。 (MySQL是唯一能夠想到的此類產品。) –

+0

對不起,剛纔意識到我的評論可能看起來含糊不清(如果不是你,那麼給別人)。我所說的非標準事情是你在'having'子句中引用'total_price'別名。 –