【发布时间】:2019-01-28 10:12:20
【问题描述】:
我正在尝试从我的 SQL 中找出查看次数最多的类型,我很新,所以我不确定在 RANK、COUNT 和/或 SUM 之间使用哪种逻辑。
所以我有三列:ID、seller_type 和 view_count
+----+-------------+------------+--------+-------+
| ID | Seller_type | view_count | Week | Day |
+----+-------------+------------+--------+-------+
| 33 | Vendor | 54 | Week1 | Day 1 |
| 33 | Vendor | 45 | Week1 | Day 2 |
| 33 | Marketplace | 68 | Week2 | Day 4 |
| 33 | Marketplace | 12 | Week2 | Day 2 |
| 32 | Vendor | 93 | Week2 | Day 3 |
| 33 | Third-party | 74 | Week1 | Day 6 |
| 32 | Third-party | 10 | Week1 | Day 1 |
+----+-------------+------------+--------+-------+
基本上,我有一个表格,其中有一个 ID、一个卖家类型和一个 ID 的查看次数。同一个卖家的唯一 ID 可以有不止一行(因为它们可以是不同的周/天)。例如,我想要做的是计算在第 1 周内哪个卖家类型对 ID 33 的查看次数最多。在这种情况下,供应商 (54+45),而不是市场 (12)。
所以我的计划是开始使用 SUM:
WITH A AS (
SELECT
ID
,Seller_type
,SUM(view_count) as Total_views
,Week
FROM Table_A
GROUP BY
ID
,Seller_type
,Week
)
SELECT
CASE WHEN Week = 'Week1' THEN MAX(Total_views)
CASE WHEN Week = 'Week2' THEN
FROM A
因此,对于子查询 A 中每个 ID 的每个卖家,我都有总计,我想在我的主查询中使用 CASE 来指示选择 max total_views 的卖家类型。但我不知道如何写我的 CASE WHEN。
任何 cmets/适应症将不胜感激!
谢谢!
【问题讨论】: