【发布时间】:2015-10-30 11:48:37
【问题描述】:
好的,所以我的要求相当简单。我有一张这样的桌子。
images | videos | reviews
--------------------------------------------------
0 | 2 | 1
4 | 5 | 0
11 | 1 | 4
0 | 1 | 7
我需要编写一个查询来计算每列中不等于0 的行数,并给出列中数字的实际总和。所以结果看起来像这样。
Columns | Counts | Sum
----------------------------------------------------
images | 2 | 15
videos | 4 | 9
reviews | 3 | 13
这可以通过 SQL 直接实现吗?我不想在应用程序级别上求和。到目前为止,我已经编写了这个查询,它工作正常,只是没有 sum 部分。
SELECT 'images', SUM(images != 0)
FROM dpsreport where publisherId = 91
UNION
SELECT 'videos', SUM(videos != 0)
FROM dpsreport where publisherId = 91
UNION
SELECT 'reviews', SUM(reviews != 0)
FROM dpsreport where publisherId = 91;
请注意,查询中的 SUM 给我的是行数,而不是实际的总和,就像数学加法一样。
【问题讨论】: