gpt4 book ai didi

mysql - reshape 表,将旧值作为新表的列名

转载 作者:行者123 更新时间:2023-11-30 23:28:21 25 4
gpt4 key购买 nike

我正在寻找一个允许我“展平”具有相同 ID 的行的查询:

  • 第二列的值用作新表的列名
  • 第三列中的值决定了新表中的值。

举个例子:

表格看起来像这样。

ID       year     event
------------------------
Guid1 2005 A
Guid1 2010 B
Guid2 2020 C

我希望它看起来像..

ID       2005      2010     2020
Guid1 A B
Guid2 C

关于如何做到这一点有什么想法吗?

最佳答案

我假设 (id, year) 组合是唯一的?否则不确定您期望的输出。如果是唯一的,它看起来像这样:

SELECT
id,
MIN(IF(year = 2005, event, NULL)) AS '2005',
MIN(IF(year = 2010, event, NULL)) AS '2010',
MIN(IF(year = 2020, event, NULL)) AS '2020'
FROM
t
GROUP BY
id

以上意味着您必须为每个所需的年份重复一次 MIN(IF(...)) 语句。 SQL 无法自动执行此操作:SQL 不会混合数据和元数据。您不能在查询中动态指定列。您可以使用“*”或指定确切的列。

关于mysql - reshape 表,将旧值作为新表的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987136/

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