我有一张表,我需要从中得出结果,如下所示。
到目前为止,我能够转动F1并结合当前值和& mismatchcount使用下面的sql。
SELECT object, GROUP_CONCAT(currentvalue ,"-", mismatchcount ) as F1
FROM tableT where freq = F1
GROUP BY object
但我需要将所有三个freq彼此相邻作为输出。
答案 0 :(得分:4)
您可以使用此查询:
SELECT object,
GROUP_CONCAT(CASE freq WHEN 'F1' THEN
CONCAT(currentvalue, "-", mismatchcount) END SEPARATOR " ") as F1,
GROUP_CONCAT(CASE freq WHEN 'F2' THEN
CONCAT(currentvalue, "-", mismatchcount) END SEPARATOR " ") as F2,
GROUP_CONCAT(CASE freq WHEN 'F3' THEN
CONCAT(currentvalue, "-", mismatchcount) END SEPARATOR " ") as F3
FROM tableT
GROUP BY object
CONCAT
函数用于连接同一记录中的值,GROUP_CONCAT
用于连接不同记录中的这些值。 CASE WHEN
表达式针对多个记录(具有freq
的不同值)进行评估,从而返回多个值。但是在这些值中,非空值需要连接。分隔符设置为空格。