【问题标题】:mysql - GROUP_CONCAT rows into a stringmysql - GROUP_CONCAT 行转换成字符串
【发布时间】:2019-11-01 18:35:45
【问题描述】:

我有以下结果集:

req_id |  p_id  | ai_result  |  hash | sku
1      |  4     | Match      |  XAN  | HOW
1      |  4     | Match      |  HXN  | HOW
1      |  4     | Non Match  |  123  | HOW

我需要有以下输出

sku  | matched  |  non_matched
HOW  | XAN, HXN |  123

这是我所能得到的:

SELECT sku, GROUP_CONCAT(hash) AS hash
FROM `sku_match` 
GROUP BY req_id, p_id

如何根据ai_result 列区分行并将它们分开放置。 GROUP_CONCAT(hash) AS matched, GROUP_CONCAT(hash) AS non_matched 之类的东西?

【问题讨论】:

  • 你可以试试子查询

标签: mysql sql group-by group-concat


【解决方案1】:

尝试使用条件聚合:

SELECT
    sku,
    GROUP_CONCAT(CASE WHEN ai_result = 'Match' THEN hash END) AS matched,
    GROUP_CONCAT(CASE WHEN ai_result = 'Non Match' THEN hash END) AS non_matched
FROM sku_match
GROUP BY
    sku;

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2021-10-08
    相关资源
    最近更新 更多