Group_concat() 没有按照数据排序
Group_concat() not sorting according to the data
排序的数据是我想要的,我不是从这个 order by 子句添加到这个声明中得到它。
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'COUNT((CASE WHEN (`ltd`.`total_pass_pc` =',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`'
)
)INTO @sql
FROM log_tc_data
ORDER BY `total_pass_pc`;
这个 group_concat
为 total_pass_pc
产生的结果是有序的
0 11.1111111 80 33.33333 .......未排序
我要排序 0 11.11111 33.333333 80......排序顺序
这是其结果的屏幕截图
您需要定义一个 GROUP BY
子句,以便在选择数据时,记录将相对于该列名称进行分组。要对其进行排序,您可以在 GROUP_CONCAT
中使用 ORDER BY
试试这个:
SELECT
GROUP_CONCAT(DISTINCT CONCAT('COUNT((CASE WHEN (`ltd`.`total_pass_pc`=',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`')
ORDER BY `total_pass_pc`)INTO @sql
FROM log_tc_data;
排序的数据是我想要的,我不是从这个 order by 子句添加到这个声明中得到它。
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'COUNT((CASE WHEN (`ltd`.`total_pass_pc` =',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`'
)
)INTO @sql
FROM log_tc_data
ORDER BY `total_pass_pc`;
这个 group_concat
为 total_pass_pc
产生的结果是有序的
0 11.1111111 80 33.33333 .......未排序
我要排序 0 11.11111 33.333333 80......排序顺序
这是其结果的屏幕截图
您需要定义一个 GROUP BY
子句,以便在选择数据时,记录将相对于该列名称进行分组。要对其进行排序,您可以在 GROUP_CONCAT
中使用 ORDER BY
试试这个:
SELECT
GROUP_CONCAT(DISTINCT CONCAT('COUNT((CASE WHEN (`ltd`.`total_pass_pc`=',total_pass_pc,') THEN 1 ELSE NULL END)) AS `TC=',total_pass_pc,'`')
ORDER BY `total_pass_pc`)INTO @sql
FROM log_tc_data;