您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何實現MySQL庫中的有序枚舉條件分組,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
SQL 只有等值分組,枚舉分組一般要用 case when 過渡,但又保持不了次序,要保留次序就得 join,比如寫成這樣:
with T2(g,ord) as {
select 'firstGroup',1
union all select 'secondGroup',2
……
}
select T1.*
from T2 join
(select (case
when condition1 then 'firstGroup'
when condition2 then 'secondGroup'
…… end) g
, count(*) n
from A
group by g) T1
on T1.g=T2.g
order by T2.ord asc
而且,即使這樣,仍然會發生空組丟失的情況。
這種情況用 SPL 要方便得多,一句搞定:
=connect(”mysqlDB”).query(“select * from A”).enum([condition1,condition2,…]).new([”firstGroup”,”secondGroup”,…](#):g, ~.len():n)
SPL 對有序集合運算支持的很徹底,能顯式的表達運算過程中的數據集(包括分組子集),除了固定順序的枚舉分組,對重疊分組也容易實現,參考 簡化 SQL 案例詳解:固定分組。
當數據不在數據庫里時,SPL 執行復雜計算仍然方便:
=file(“d:/t.csv”).import(;,",").enum...
關于如何實現MySQL庫中的有序枚舉條件分組就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。