我有一个包含三列的表,另一个存储用户的ip地址。我想查询,但想限制它,以便ip_address列中的ip用户只计算一次。这是我当前的查询
SELECT COUNT(*) FROM articles where article_id = '1'
答案 0 :(得分:5)
您想要计算唯一的IP地址吗?使用count(distinct)
SELECT COUNT(DISTINCT IP_address) FROM articles where article_id = '1'
答案 1 :(得分:0)
为了说清楚,以下是GROUP BY的解决方案:
SELECT COUNT(*) FROM (SELECT IP_address FROM articles GROUP BY IP_address WHERE article_id = '1')
我只发布它,以便其他人可以将它与使用COUNT(DISTINCT IP_address)的更好的解决方案already posted进行比较,看看其中一个与另一个不同。
如果有更好的方法将GROUP BY用于同一任务,我还没有学习它。
答案 2 :(得分:-2)
SELECT IP, COUNT(IP) FROM ARTICLES WHERE ARTICLE_ID = '1' GROUP BY IP