2016-11-13 144 views
0

這是我當前的查詢:SQL:COUNT()分組結果

SELECT locationname, eventid 
FROM events 
GROUP BY locationname 
ORDER BY locationname ASC 

正如你可以看到它是由LOCATIONNAME因爲有幾行用相同的LOCATIONNAME分組。

在輸出中,我只需要一個「不同」(分組)位置的列表,但在每個位置後面應該有每個位置的總量。

因此,如果在「events」中有4個locationsname與「Congress Center NYC」,則輸出應爲「Congress Center NYC(4)」。

有沒有辦法用COUNT()擴展查詢?

謝謝!

回答

3

這是一個直接的聚合查詢。

SELECT locationname, COUNT(*) number 
    FROM events 
GROUP BY locationname 
ORDER BY locationname 

如果你想要特定的格式,你可以使用你的查詢的第一行得到它。

SELECT CONCAT(locationname, ' (', COUNT(*), ')') 
2

選擇COUNT(locationname)應該做你想做的。即

SELECT locationname, COUNT(locationname) 
FROM events 
GROUP BY locationname 
ORDER BY locationname ASC 
0

在您的查詢例子有「事項標識」,當你添加分組,您將收到「事項標識」的第一次發生與同一「locationame」行, 可以使用GROUP_CONCAT獲得的所有事件,並執行在相同的時間算

SELECT locationname, group_concat(eventid), count(eventid) as number 
FROM events 
GROUP BY locationname 
ORDER BY locationname ASC 

也可以使用concat函數具有完全按照你寫

SELECT concat(locationname, ' (', count(*), ')') 
FROM events 
GROUP BY locationname 
ORDER BY locationname ASC 
輸出