如何获得每个月的独特观众数量?

时间:2018-02-20 09:38:16

标签: mysql sql

我有一张桌子,我需要计算每个月独特观众的数量。

SELECT month, location, COUNT(DISTINCT id) AS unique_viewers
FROM mytable
GROUP BY month, location

我需要结果只显示基于acid id的月份,位置和唯一视图的数量。

例如

Month  ID  Location
JAN   123   CA
JAN   456   CA
JAN   123   CA

我根据ID不同而无法计数。我需要我的结果才能显示Jan的两个独特视图

2 个答案:

答案 0 :(得分:0)

  

我有一张桌子,我需要计算每个月独特观众的数量。

  • "每个月"转换为SQL中的GROUP BY month
  • "计算独特观众的数量"转换为COUNT(DISTINCT viewer)(或任何列的名称)。

查询:

SELECT month, COUNT(DISTINCT viewer) AS unique_viweers
FROM mytable
GROUP BY month
ORDER BY month;
  
    

我需要结果只显示基于acid id的月份,位置和唯一视图的数量。

  

位置?哪个位置?一个月内可以有多个地点。所以这无法解决。您可以使用GROUP_CONCAT显示位置列表。

SELECT 
  month,
  COUNT(DISTINCT viewer) AS unique_viweers,
  GROUP_CONCAT(DISTINCT location ORDER BY location) as locations
FROM mytable
GROUP BY month
ORDER BY month;

答案 1 :(得分:0)

您已更改了您的请求,与此相矛盾"我需要计算每个月的独特观看者数量"。您似乎更愿意计算每个月和位置的唯一身份观看者数量。

使用COUNT(DISTINCT acct_id)

SELECT month, location, COUNT(DISTINCT acct_id) AS unique_viewers
FROM mytable
GROUP BY month, location
ORDER BY month, location;