gpt4 book ai didi

MySQL 每列的总和以及所有列的总和

转载 作者:行者123 更新时间:2023-11-29 13:28:51 28 4
gpt4 key购买 nike

我正在制作一个简单的答案跟踪应用程序,它输出条形图,显示有多少人回答了每个问题。

a_id    q_id    a_option_1  a_option_2  a_option_3  a_option_4
1 1 NULL NULL 1 NULL
2 1 NULL 1 NULL NULL
3 1 1 NULL NULL NULL
4 1 1 NULL NULL NULL
5 2 NULL 1 NULL NULL
6 2 1 NULL NULL NULL
7 2 1 NULL NULL NULL
8 2 1 NULL NULL NULL

对于每个图表,我正在做:

SELECT sum(a_option_1) as a_1, sum(a_option_2) as a_2, sum(a_option_3) as a_3, sum(a_option_4) as a_4, sum(a_option_1) + sum(a_option_2) + sum(a_option_3) + sum(a_option_4) as total FROM interactive_answers WHERE q_id = x

如果每个选项都有答案,那就没问题了,但是

sum(a_option_1) + sum(a_option_2) + sum(a_option_3) + sum(a_option_4) as total

如果某些选项没有值,则不会输出任何内容。

我需要做什么才能解决这个问题?

最佳答案

让我们输入一个答案。我将添加一些详细信息以使其不再重复。

选择:

SUM(COALESCE(a_option_1, 0))

COALESCE(SUM(a_option_1), 0)

不过,我更喜欢第一种形式,主要是因为,嗯,这就是我的想法——我认为“合并尽可能接近零”。我不确定它是否存在性能问题。

此外,IFNULL 也可以像 COALESCE 一样完成它。 IFNULL 速度更快,但只需要两个参数,因为它针对单一情况进行了优化。我想我总是使用 COALESCE,因为它适用于任意数量的参数,因此它更通用,更容易让我记住。

关于MySQL 每列的总和以及所有列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760631/

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