Mysql 8 聚合
Mysql 8 Aggregation
我有一个 table 具有这种特定结构
在这里,我们有由不同候选人 (performer
) 执行的一系列操作。
对于每个性能,它可以是主要的或次要的(primary
列)。
每个动作只能执行一次,但可以是次要的服务次数
我正在寻找的是我为每个动作获得的结果,主要执行者的姓名和次要执行者的姓名。
这是我要查找的结果:
这可以仅通过 SQL 脚本来完成吗?或者我必须开发一个后端脚本(例如使用 PHP)来格式化数据?
当然,这很容易做到,就像这样:
SELECT action,
GROUP_CONCAT(
CASE
WHEN T.primary = 1
THEN performer
END
) AS primary,
GROUP_CONCAT(
CASE
WHEN T.primary = 0
THEN performer
END
) AS secondary
FROM my_table
GROUP BY action
我有一个 table 具有这种特定结构
在这里,我们有由不同候选人 (performer
) 执行的一系列操作。
对于每个性能,它可以是主要的或次要的(primary
列)。
每个动作只能执行一次,但可以是次要的服务次数
我正在寻找的是我为每个动作获得的结果,主要执行者的姓名和次要执行者的姓名。
这是我要查找的结果:
这可以仅通过 SQL 脚本来完成吗?或者我必须开发一个后端脚本(例如使用 PHP)来格式化数据?
当然,这很容易做到,就像这样:
SELECT action,
GROUP_CONCAT(
CASE
WHEN T.primary = 1
THEN performer
END
) AS primary,
GROUP_CONCAT(
CASE
WHEN T.primary = 0
THEN performer
END
) AS secondary
FROM my_table
GROUP BY action