[英]Select distinct column_a and group by column_b
我有一個包含以下兩列的表:
ip country
這些是我在網站上擁有的觀眾。 我正在嘗試查看每個國家/地區獲得了多少個唯一 IP。
我想出了這個:
SELECT DISTINCT ip, country, count(*) as views FROM views GROUP BY country
我希望這將選擇不同IP的數量以及它們按國家分組的國家。 然后,我將擁有一個保存計數的列views
。
但是,此操作不起作用,該查詢返回的是按國家/地區分組的行的總數。 無論是否使用DISTINCT ip
我都能得到相同的結果。
編輯:我還沒有清楚表達自己的意思,我想弄清楚的是每個國家/地區有多少個唯一IP 。
我的某些IP在數據庫中重復,同一IP出現3-4次。 我想忽略這一點:
輸入樣本:
**ip** **country**
1.1.1.1 USA
1.1.1.1 USA
1.1.1.1 USA
1.1.1.1 USA
1.1.1.2 USA
1.1.1.2 USA
1.1.1.2 USA
1.1.1.3 GER
1.1.1.3 GER
1.1.1.5 GER
應該輸出:
USA -> 2
GER -> 2
即:美國有兩個不同的IP,德國有兩個不同的IP。
嘗試這個:
SELECT
country,
count(DISTINCT ip) views
FROM views
GROUP BY country
ORDER BY country;
@Joseph B SQL的微小更改
Select country, views
FROM (SELECT count(DISTINCT ip) views,
country
FROM views
GROUP BY country
ORDER BY country);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.