如何通过存储过程中以逗号分隔的id将concat多个记录分组?

问题描述 投票:0回答:1

以下是我正在使用的查询,用于基于组concat生成多个公式,因此我可以将相同的公式应用于不同的表。通过不使用逗号分隔的ID,可以正常使用单个ID。

/ * id_val ='6,7'; //在sp参数中添加* /

SET @query = (SELECT GROUP_CONCAT(CONCAT('(SUM(',column_name_table,') / sum(count_of_x) ) * 100 
    as ',kpi_display_name,' ') ) FROM `formula_table` WHERE id IN (id_val) );

SELECT @query;

其中count_of_x是静态值; column_name_table是公式表中的字段

但以上查询返回单个值;

表结构为

CREATE TABLE `formula_table` (
      `id` int NOT NULL AUTO_INCREMENT,
      `column_name_table` varchar(255) DEFAULT NULL
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;





insert  into `formula_table`(`id`,`column_name_table`) values 
(5,'higest_record'),
(6,'higest_salary'),
(7,'higest_employee'),
(9,'higest_x');

以下是我正在使用的查询,用于基于组concat生成多个公式,因此我可以将相同的公式应用于不同的表。它对单个id的工作正常,不是...

mysql stored-procedures stored-functions
1个回答
0
投票

我已尝试解决此问题

© www.soinside.com 2019 - 2024. All rights reserved.