Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql-将行分组为字符串_Mysql_Sql_Group By_Group Concat - Fatal编程技术网

mysql-将行分组为字符串

mysql-将行分组为字符串,mysql,sql,group-by,group-concat,Mysql,Sql,Group By,Group Concat,我有以下结果集: 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 以下是我

我有以下结果集:

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_结果列区分行并将它们分开放置。
类似于组匹配,组不匹配?

尝试使用条件聚合:

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;

尝试使用条件聚合:

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;

您可以尝试子查询您可以尝试子查询