gpt4 book ai didi

mysql - 将多行合并为一行

转载 作者:行者123 更新时间:2023-11-29 02:22:01 26 4
gpt4 key购买 nike

我有一个非常复杂的查询来提取一些数据。结果集如下所示:

mon | tue  | wed | thu  | fri | sat  | sun |  dispatch | driver_id | name | phone
x | x | x | x | x | data | x | 1 | 2 | Bob | 123
x | data | x | x | x | x | x | 1 | 2 | Bob | 123
x | x | x | data | x | x | x | 1 | 2 | Bob | 123

我想知道是否有人可以帮助我合并具有相同 dispatch | 的多个列driver_id |姓名 | phone 进入 ONE ROW

因此我最终会得到这个(所有 data 值替换为 x 值):

mon | tue  | wed | thu   | fri | sat   | sun |  dispatch | driver_id | name | phone
x | data | x | data | x | data | x | 1 | 2 | Bob | 123
  • Data 值不同,它们是TEXT,而x 值总是表示为x<
  • 会有各种dispatch | driver_id |姓名 |电话组合

最佳答案

如果“x”值为 NULL,您可以使用这样的查询:

SELECT
MAX(mon) AS mon,
MAX(tue) AS tue,
MAX(wed) AS wed,
MAX(thu) AS thu,
MAX(fri) AS fri,
MAX(sat) AS sat,
MAX(sun) AS sun,
dispatch,
driver_id,
name,
phone
FROM
yourtable
GROUP BY
dispatch,
driver_it,
name,
phone

但是如果“x”值是确切的字符串“x”那么你应该使用这样的东西:

MAX(CASE WHEN mon!='x' THEN mon END) as mon,
MAX(CASE WHEN tue!='x' THEN tue END) as tue,
...

这会起作用,除非两个或多个不同的行对同一列具有不同的值。

关于mysql - 将多行合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30164681/

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