[英]MySQL Change label value in select distinct and count
我有以下查詢:
SELECT DISTINCT GRAD_ACAD,
COUNT(GRAD_ACAD) AS subtotal
FROM academicos
WHERE CCN REGEXP 'I|D65'
GROUP BY GRAD_ACAD
ORDER BY GRAD_ACAD
結果是:
GRAD_ACAD subtotal
DOC 11
LIC 2
MTR 3
我要做的是將值標簽更改為以下內容:
GRAD_ACAD subtotal
Doctorado 11
Licenciatura 2
Maestría 3
我已經嘗試過Case了,但是卻無法正常工作:
SELECT DISTINCT GRAD_ACAD CASE GRAD_ACAD WHEN 'DOC' THEN 'doctorado' ELSE(SELECT GRAD_ACAD) END AS GRAD_ACAD,
COUNT(GRAD_ACAD) AS subtotal
FROM academicos
WHERE CCN REGEXP 'I|D65'
GROUP BY GRAD_ACAD
ORDER BY GRAD_ACAD
我怎樣才能解決這個問題?
case GRAD_ACAD when 'DOC' then 'Doctorado' when 'LIC' then 'Licenciatura' when 'MTR' then 'Maestria' else GRAD_ACAD end
您需要在SELECT
和GROUP BY
中都放入相同的子句
無需在此處使用DISTINCT
SELECT CASE GRAD_ACAD WHEN 'DOC' THEN 'doctorado'
WHEN 'LIC' then 'Licenciatura'
WHEN 'MTR' then 'Maestria'
ELSE GRAD_ACAD end,
COUNT(GRAD_ACAD) AS subtotal
FROM academicos
WHERE CCN REGEXP 'I|D65'
GROUP BY 1
ORDER BY 1;
注意,我使用了group by 1
和order by 1
來指定第一個選定字段,而不是在兩個子句中都重復這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.