我有一个包含用户的表......一些用户以某种方式加倍(有多个记录)。我想通过电子邮件地址清楚地提取每个用户记录,对于拥有多个记录的用户,我只想提取登录次数最多的记录。
--USERS----------------------------
ID EMAIL TOTAL_LOGINS
1 blah@blah.com 3
2 blah@blah.com 1
3 bloop@blah.com 1
4 bloop@blah.com 45
5 blarp@blah.com 6
6 flag@blah.com 2
我希望查询返回的是:
ID EMAIL TOTAL_LOGINS
1 blah@blah.com 3
4 bloop@blah.com 45
5 blarp@blah.com 6
6 flag@blah.com 2
有人可以帮我解决这个问题吗?
谢谢!
最佳答案
SELECT EMAIL, MAX(TOTAL_LOGINS)
FROM USERS
GROUP BY EMAIL
编辑:
这将在 MS SQL 中执行您想要的操作。
SELECT * -- Bad practice. I'm just showing that you can select anything.
FROM USERS
WHERE ID = (SELECT TOP 1 ID
FROM USERS u
WHERE u.EMAIL = USERS.EMAIL
ORDER BY TOTAL_LOGINS DESC)
关于sql - 如何编写此查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597137/