簡體   English   中英

選擇不同的column_a並按column_b分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM