【发布时间】:2015-10-30 13:18:48
【问题描述】:
我需要做与here 相同的事情。这次我想要一个基于两个标准的结果。所以我有一张这样的桌子。
images | videos | reviews | publisherId
----------------------------------------------------------------------------
0 | 2 | 1 | 91
4 | 5 | 0 | 91
11 | 1 | 4 | 12
0 | 1 | 7 | 12
2 | 1 | 9 | 12
我需要编写一个查询来计算每列中不等于0 的行数,并给出列中数字的实际总和,并根据publisherId 排列结果。所以结果会是这样的。
Columns | Counts(91) | Sum(91) | Counts(12) | Sum(12)
----------------------------------------------------------------------------
images | 1 | 4 | 2 | 13
videos | 2 | 7 | 3 | 3
reviews | 1 | 1 | 3 | 20
从answer 到我的另一个问题,给出一个publisherId 的结果的查询是这样的。
SELECT 'images' as `columns`, SUM(images <> 0) as counts, SUM(images) as `sum`
FROM dpsreport where publisherId = 91
UNION ALL
SELECT 'videos', SUM(videos <> 0), SUM(videos)
FROM dpsreport where publisherId = 91
UNION ALL
SELECT 'reviews', SUM(reviews <> 0), SUM(reviews)
FROM dpsreport where publisherId = 91;
我如何实现这个结果?
【问题讨论】:
-
这看起来完全一样——有什么不同?
-
看看结果。我需要在结果中再添加两列,每列用于两个“publisherId”。
-
列名上的数字是publisherId,以区分结果..
-
呃,我不知道。我不精通 SQL。