gpt4 book ai didi

MySQL:获取多列中整数值的计数和总和

转载 作者:行者123 更新时间:2023-11-28 23:47:06 24 4
gpt4 key购买 nike

好的,所以我的要求相当简单。我有一张这样的 table 。

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 实现吗?我不想在应用程序级别上求和。到目前为止,我已经编写了这个查询并且它工作正常,只是没有求和部分。

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 给出了行数,而不是数学加法中的实际总和。

最佳答案

我认为这可以满足您的需求:

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;

注意事项:

  • 不等于的 SQL 标准是 <>而不是 != (尽管许多数据库都支持两者)。
  • 使用UNION ALL而不是 UNION ,以避免删除重复项的开销(在这种情况下可以忽略不计)。

关于MySQL:获取多列中整数值的计数和总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com