簡體   English   中英

MySQL更改標簽值選擇不同並計數

[英]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

您需要在SELECTGROUP 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 1order by 1來指定第一個選定字段,而不是在兩個子句中都重復這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM