选择具有相同列的所有行以分隔mysql中的列

Moj*_*vin 2 mysql select pivot-table group-concat mariadb

我有这样一张桌子:

fkey | sensor | depth | value 
-----+--------+-------+-------
1    | 1      | 1     | 34
1    | 1      | 2     | 27
1    | 2      | 1     | 22
1    | 2      | 2     | 34
1    | 2      | 3     | 56
2    | 1      | 1     | 12
2    | 1      | 2     | 24
2    | 2      | 1     | 56
3    | 1      | 1     | 43
3    | 1      | 2     | 89
3    | 1      | 3     | 97
Run Code Online (Sandbox Code Playgroud)

如何GROUP_CONCAT为每个传感器和ORDER BY深度写入select查询值来显示这个?

fkey | sensor1_values  |  sensor2_values
-----+-----------------+------------------
1    | 34,27           |  22,34,56 
2    | 12,24           |  56
3    | 43,89,97        |  NULL  
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

尝试使用GROUP_CONCAT具有CASE表达为目标的每个所述传感器的数据.

SELECT
    fkey,
    GROUP_CONCAT(CASE WHEN sensor=1 THEN value END ORDER BY depth) AS sensor1_values,
    GROUP_CONCAT(CASE WHEN sensor=2 THEN value END ORDER BY depth) AS sensor2_values
FROM yourTable
GROUP BY fkey;
Run Code Online (Sandbox Code Playgroud)