oracle在group by時某列有多個值的拼接

2022-08-31 13:57:12 字數 1066 閱讀 5299

有如下表student:

我們希望以class分組,每組的資訊平鋪,效果如下

分組首先想到的肯定是group by:

select * from student s group by s.class;

我們會發現這樣會報錯,因為name和age有多個值,這個時候我們就可以使用wm_concat()方法來解決。

select wm_concat(s.name),wm_concat(s.age),s.class from student s gruop by s.class;

但是這個寫法又出現了乙個新的問題,你會發現name和age這列的結果是

只需要把wm_concat前面加乙個to_char就好了,而且結果就是上面想要的結果。

select to_char(wm_concat(s.name)) as name,

to_char(wm_concat(s.age)) as age,

s.class

from student s

gruop by s.class;

---------------------

還有乙個函式listagg(『引數一』,』引數二』),這個函式和wm_comcat的作用類似,第乙個引數是字段,第二個引數是多個值之間的分隔符,但是用法有些不同,例子如下:

Oracle高階查詢之GROUP BY

為了方便大家學習和測試,所有的例子都是在oracle自帶使用者scott下建立的。現在客戶的需求是統計部門中每種工作的工資總額,最後還需要統計所有人的工資總數,相信這樣的需求對大家來說還是比較簡單的,很快就能寫出sql語句,如下 sql view plain copy select deptno,j...

Oracle高階查詢之GROUP BY

對於group by 的方式不再累贅,高階方式如下案例。為了方便大家學習和測試,所有的例子都是在oracle自帶使用者scott下建立的。所用emp表,如果沒有此表請參考文章 中拷貝 現在客戶的需求是統計部門中每種工作的工資總額,最後還需要統計所有人的工資總數,相信這樣的需求對大家來說還是比較簡單的...

在Django中使用group by

在django中怎樣使用group by語句呢?找了很多資料,都沒有看到好的,在這裡分享兩種方法給大家 首先,我們先建乙個簡單的模型。class book models.model name models.charfield u 書名 max length 255,db index true aut...