我想使用SQL查询查看哪个用户获得了最高的评价。我的表格如下,id | uid | ip
。现在,我想计算一个uid
的行数,但是它必须与ip
唯一。因此,没有人可以给一个人多个击掌感。
我在网上搜索,却找不到任何信息。如果有人可以帮助我,我将不胜感激。
答案 0 :(得分:3)
您可以尝试以下操作
select ip, count(distinct uid) from table t
group by ip
答案 1 :(得分:0)
SELECT uid,COUNT(ip)NoOfVotes FROM
(SELECT uid,ip,Serial=ROW_NUMBER() OVER(PARTITION BY ip,uid ORDER BY uid) FROM
dbo.tbl_user)A
WHERE Serial=1
GROUP BY uid
我认为这将为您提供完美的投票计数。使用行号可以从相同的ip,相同的uid中主动删除重复项。此查询允许从相同的IP投票给多个uid。