gpt4 book ai didi

mysql - 选择多列中相似值的计数

转载 作者:行者123 更新时间:2023-11-29 11:15:49 27 4
gpt4 key购买 nike

我有一个供用户输入问题的表格。他们可以选择对同一问题给出最多五个答案,因此您有 5 个字段,对于同一问题最多有五个不同的答案。

所以 field1,filed2,field3,field4,field5 都可以得到答案“foo”

我想创建一个查询,该查询将为所有用户返回每个可能答案的五列中任意一列中的总答案数。

所以输出将是:

'foo' 22 'I like cake' 32 'who cares' 2

我的思路是正确的,但我怀疑有一个更优雅的解决方案。这是我到目前为止所拥有的:

SELECT field1,filed2,field3,field4,field5,
(sum(CASE WHEN field1='foo' THEN 1 ELSE 0 END) +
sum(CASE WHEN field2='foo' THEN 1 ELSE 0 END)) +
sum(CASE WHEN field3='foo' THEN 1 ELSE 0 END)) +
sum(CASE WHEN field4='foo' THEN 1 ELSE 0 END)) +
sum(CASE WHEN field5='foo' THEN 1 ELSE 0 END)) AS count

FROM items
GROUP BY field1,filed2,field3,field4,field5
;

如有任何建议,我们将不胜感激。

最佳答案

也许这就是您所需要的。拥有一个派生表,将所有列通过 UNION ALL 合并为一个。然后执行GROUP BY:

select field, count(*)
from
(
select field1 as field from items
union all
select field2 from items
union all
...
select fieldn from items
) dt
group by field

关于mysql - 选择多列中相似值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39791336/

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