如何在第一行中組合具有相同值的行,並在行中放置null或空格而不影響select語句中的GROUP BY主題?看看我正在努力實現並幫助我。 如何在mysql中結合具有相同值的行
我試圖查詢:
SELECT regd, GROUP_CONCAT(name order by name SEPARATOR ' ') as name,
subject, sc, fm FROM table GROUP BY regd, subject
如何在第一行中組合具有相同值的行,並在行中放置null或空格而不影響select語句中的GROUP BY主題?看看我正在努力實現並幫助我。 如何在mysql中結合具有相同值的行
我試圖查詢:
SELECT regd, GROUP_CONCAT(name order by name SEPARATOR ' ') as name,
subject, sc, fm FROM table GROUP BY regd, subject
首先,我建議你在代碼中,而不是在數據庫級別處理這個問題!
但是,如果您絕對必須在查詢中完成所有操作,則可以嘗試ranking over partition,其中regd
列爲分區。您的預期產出在每個regd
內都有相當隨意的排序。
這個查詢可以通過subject
每個regd
內訂購:
select t.regd,
case when r=1 then t.name else null end as name,
t.subject,
t.sc,t.fm
from
(
select tt.*,
case when regd = @curRegd then @rank := @rank +1 else @rank:=1 end as r,
@curRegd := tt.regd
from table tt
join (SELECT @curRegd := 0,@rank:=0) r
order by regd,subject
) t
最後,根據您存儲的數據例子,好像沒有聚集即GROUP BY
條款,有必要在這裏。
不錯的答案,看起來像可以工作,但我非常同意在代碼中而不是在MySQL中處理。 – rlanvin
非凡。這正是我正在尋找的。非常感謝你。這是一個很大的幫助。 –
你爲什麼要「在行中放置空或空格」?你想要達到什麼目的? – rlanvin
我想以這種格式導出。 –