Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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自定义订单依据_Mysql - Fatal编程技术网

当有分组依据时,MySQL自定义订单依据

当有分组依据时,MySQL自定义订单依据,mysql,Mysql,我想知道当我以前使用group BY时如何使用自定义ORDER BY 这是我的问题 SELECT CASE WHEN a.edad < 40 THEN 'Menos de 40' WHEN a.edad >= 40 AND a.edad <=49 THEN 'De 40 a 49' WHEN a.edad >= 50 AND a.edad <=59 THEN 'De 50 a 59' WHEN a.edad >= 60 AND a

我想知道当我以前使用group BY时如何使用自定义ORDER BY

这是我的问题

SELECT
CASE WHEN a.edad < 40 THEN 'Menos de 40'
     WHEN a.edad >= 40 AND a.edad <=49 THEN 'De 40 a 49'
     WHEN a.edad >= 50 AND a.edad <=59 THEN 'De 50 a 59'
     WHEN a.edad >= 60 AND a.edad <=69 THEN 'De 60 a 69'
     WHEN a.edad >=70 THEN 'De 70 y más'
      ELSE(SELECT a.edad) END AS 'Grupo de edad',
      SUM(IF(a.sexo='F',1,0)) AS Mujeres,SUM(IF(a.sexo='M',1,0)) AS Hombres
FROM academicos a
WHERE CCN REGEXP 'I|D65' /*Tomando en cuenta a la persona docente*/
GROUP BY 1
我希望文本
'Menos de 40',2,0
出现在顶部。
如何实现这一点?

您必须使用稍微不同的返回标准将
CASE
语句复制到
ORDER BY
子句中。我尽我所能把你的问题翻译成英语,我没有不尊重的意思

查询:

SELECT 
  CASE WHEN age < 40 THEN 'Less than 40'
       WHEN age >= 40 AND age <= 49 THEN 'From 40 to 49'
       WHEN age >= 50 AND age <= 59 THEN 'From 50 to 59'
       WHEN age >= 60 AND age <= 69 THEN 'From 60 to 69'
       ELSE age END AS 'Age Grouping',
  SUM(IF(sex = 'F', 1, 0)) AS 'Girls',
  SUM(IF(sex = 'M', 1, 0)) AS 'Boys'
FROM students
GROUP BY 1
ORDER BY 
  CASE WHEN age < 40 THEN 1
       WHEN age >= 40 AND age <= 49 THEN 2
       WHEN age >= 50 AND age <= 59 THEN 3
       WHEN age >= 60 AND age <= 69 THEN 4
       ELSE 5 END
+---------------+-------+------+ | Age Grouping | Girls | Boys | +---------------+-------+------+ | Less than 40 | 1 | 2 | | From 40 to 49 | 0 | 1 | | From 50 to 59 | 0 | 1 | | From 60 to 69 | 0 | 1 | +---------------+-------+------+
选择
如果年龄<40岁,则“小于40”

当年龄>=40岁,年龄=50岁,年龄=60岁,年龄=40岁,年龄=50岁,年龄=60岁,你在心理上应用的标准是什么,应该使记录处于顶部?这就成功了!顺便说一句,谢谢你把这个问题翻译成英语。 +---------------+-------+------+ | Age Grouping | Girls | Boys | +---------------+-------+------+ | Less than 40 | 1 | 2 | | From 40 to 49 | 0 | 1 | | From 50 to 59 | 0 | 1 | | From 60 to 69 | 0 | 1 | +---------------+-------+------+