【问题标题】:How to count total usages如何计算总使用量
【发布时间】:2021-01-19 02:11:04
【问题描述】:

我有两张表(简化版):

+-------------+--------------+----------------------------+
|                        code                             |
+-------------+--------------+----------------------------+
| code_id     | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| campaign_id | int          | FOREIGN KEY campaign       |
| code        | varchar(12)  |                            |
+-------------+--------------+----------------------------+

+-------------+--------------+----------------------------+
|                        code_usages                      |
+-------------+--------------+----------------------------+
| code_usg_id | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| code_id     | int          | FOREIGN KEY code           |
| used_at     | DateTime     |                            |
+-------------+--------------+----------------------------+

一个campaign可以有多个code,一个code可以多次使用。如何计算按campaign_id 分组的总代码和已用代码(此campaign_id 的所有代码使用总数)?

示例结果:

+-------------+--------------+-----------------+
| campaign_id | used_times   |   total_codes   |
+-------------+--------------+-----------------+
| 1           | 44           | 1               |
| 2           | 1            | 3               |
| 3           | 33           | 4               |
+-------------+--------------+-----------------+

【问题讨论】:

    标签: sql join count


    【解决方案1】:

    这应该做,您对广告系列进行分组并查找组中所有使用的计数(即计算所有使用 ID)并计算组中唯一代码的数量

    SELECT campaign_id, COUNT(code_usg_id) AS used_times, COUNT(DISTINCT c.code_id) AS total_codes   
    FROM code c 
    LEFT JOIN code_usages u
    ON c.code_id = u.code_id   
    GROUP BY campaign_id 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多