我正在寻找一个允许我使用相同ID“展平”行的查询:
举个例子:
表格如下所示。
ID year event
------------------------
Guid1 2005 A
Guid1 2010 B
Guid2 2020 C
我希望它看起来像..
ID 2005 2010 2020
Guid1 A B
Guid2 C
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
我认为(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不会混合数据和元数据。您无法在查询中动态指定列。要么使用“*”,要么指定确切的列。