当有分组依据时,MySQL自定义订单依据
我想知道当我以前使用group BY时如何使用自定义ORDER BY 这是我的问题当有分组依据时,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
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 |
+---------------+-------+------+