gpt4 book ai didi

mysql - 如何从 MySQL 表创建一个 View 来计算每列中的特定条件?

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

我有一个类似这样的表:

Name    Alice    Bob    Carl    Dan    ...
Foo 2 2 0 1
Bar 1 2 2 0
...

我想要的是创建一个 View (或者只是做一个查询)来告诉我 Alice、Bob 等列中有多少个 0、1 和 2。所以我想要一个看起来像这样的表:

Name     0s   1s   2s
Alice 5 2 3
Bob 7 1 4
Carl 3 ...etc.

我该怎么做?单元格中的值只能是 0、1 或 2,因此不需要对任何任意数据都是通用的。我需要执行此操作的表大约有 70 列和 1250 行。

最佳答案

使用现有的数据结构是相当痛苦的。基本上,你可以这样做:

select 'Alice' as name, sum(Alice = 0) as Zeros, sum(Alice = 1) as Ones, Sum(Alice = 2) as Twos
from table t
union all
select 'Bob' as name, sum(Bob = 0) as Zeros, sum(Bob = 1) as Ones, Sum(Bob = 2) as Twos
from table t
union all
. . .

也就是说,为输出中的每一行创建一个子查询。

注意:这可能是实现您想要的目标的最简单方法。如果您有一个很大的表,可能还有其他性能更好的方法。

此外,您还可以使用电子表格为每个子查询生成代码。这可以使编写查询变得更加容易。

编辑:

用三列构建表格会更好:

  • 姓名
  • 无论 Foo/Bar 应该被称为什么
  • 值(value)

然后您可以通过条件聚合相对轻松地完成此操作。

关于mysql - 如何从 MySQL 表创建一个 View 来计算每列中的特定条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26148415/

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