mySQL使用子查询优化group by语句
我有一个SQL语句,它看起来像: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
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不是唯一的,而且在很多数据上速度会很慢:/所以,这不是理想的结果?