2016-11-13 137 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 
输出