Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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使用子查询优化group by语句_Mysql_Group By_Subquery - Fatal编程技术网

mySQL使用子查询优化group by语句

mySQL使用子查询优化group by语句,mysql,group-by,subquery,Mysql,Group By,Subquery,我有一个SQL语句,它看起来像: select id, CIDs, COLOR, XT, MP, Name, concat(PIDs,",",GROUP_CONCAT(DISTINCT id)) as PIDs, IFNULL(Name,id) as unqName from ( select id, CIDs, COLOR, XT, MP, Name, concat(PIDs,",",GROUP_CONCAT(DISTINCT id)) as PIDs, IFNULL(MP,id) as u

我有一个SQL语句,它看起来像:

select id, CIDs, COLOR, XT, MP, Name, concat(PIDs,",",GROUP_CONCAT(DISTINCT id)) as PIDs, IFNULL(Name,id) as unqName from ( 
select id, CIDs, COLOR, XT, MP, Name, concat(PIDs,",",GROUP_CONCAT(DISTINCT id)) as PIDs, IFNULL(MP,id) as unqMP from (
select id, CIDs, COLOR, XT, MP, Name, concat(PIDs,",",GROUP_CONCAT(DISTINCT id)) as PIDs, IFNULL(XT,id) as unqXT from ( 
select id, CIDs, COLOR, XT, MP, Name, GROUP_CONCAT(DISTINCT id) as PIDs, IFNULL(COLOR,id) as unqCOLOR from Performance group by unqCOLOR 
) m group by unqXT 
) x group by unqMP 
) y group by unqName
我需要调整性能细节并获得PID,它可以工作。 但是我得到了重复的PID(4次),是否有任何性能优化? 为了更快地执行SQL语句,并使PIDs唯一

mysql> select count(*) from Performance;
+----------+
| count(*) |
+----------+
|   243484 |
+----------+
1 row in set (0.00 sec)
SQL语句的执行时间为:

Query OK, 137771 rows affected (43.54 sec)
编辑: SQLFiddle链接:


大家好,欢迎来到SO。这是一个可怕的问题。很好,你已经向我们展示了你的尝试,但现在让我们回到基础。考虑提供适当的DDL和/或SqLFIDLE连同期望的结果。哦,让我们暂时也忘掉所有的分组内容,只返回一个简单的有序(和非分组/非链接)结果。好的,请稍候;)@草莓:这是一个例子;)结果看起来不错,但PID不是唯一的,而且在很多数据上速度会很慢:/所以,这不是理想的结果?