我正在尝试计算每个用户的记录数量:
SELECT count(userID) as countOfRecords FROM (select distinct userID from `table`)
我收到错误:每个派生表都必须有自己的别名我做错了什么?
答案 0 :(得分:2)
您不需要派生表,您可以只计算(不同):
SELECT count(distinct userID) as countOfRecords
FROM `table`
编辑:当我看到Philip Fourie的回答时,我意识到我或许没有给出完整的答案......也可以查看他的GROUP BY
解决方案。< / p>
答案 1 :(得分:2)
您可以使用GROUP BY
select userID, count(*) as countOfRecords
from table
group by userID
答案 2 :(得分:0)
仅仅是为了完整性,因为没有明确标记MySql。如果您使用SQL-Server,也可以使用COUNT(*) OVER
。然后,您获得每行中UserID
的记录数:
SELECT userID,
COUNT(*) OVER (PARTITON BY userID) AS countOfRecords,
other columns ...
FROM dbo.TableName