一句話實現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 對有序集合運算支援的很徹底,能顯式的表達運算過程中的資料集(包括分組子集),除了固定順序的列舉分組,對重疊分組也容易實現,參考 。
當資料不在資料庫裡時,SPL 執行復雜計算仍然方便:
=file(“d:/t.csv”).import(;,",").enum...
SPL能很方便地嵌入到JAVA應用,可參考 。
具體使用方法可參考 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2700965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一句話實現MySQL庫中的按條件變化分組MySql
- 一句話實現MySQL庫中的重疊分組MySql
- 一句話實現MySQL庫中的按連續等值分組MySql
- Autofac實現有條件的DI
- 如何實現條件組合元件元件
- 【Django】組合條件的搜尋功能實現Django
- MySQL實現分組排序MySql排序
- 一句話得到中間值的多條記錄
- 一句話從 Mysql 取每組前三名MySql
- MySQL資料庫中的分組函式ROLLUPMySql資料庫函式
- 一句話實現欄位拆分成多行
- MySQL的where條件字串區分大小寫的問題MySql字串
- 談談raft fig8 —— 迷惑的提交條件和選舉條件Raft
- 資料庫的集合,分頁及約束條件資料庫
- 一句話區分currentTarget和target
- 一句話得到 SQL 難實現的去年同期比SQL
- Java多型實現的必要條件Java多型
- redis實現像關係型資料庫一樣按條件高效查詢分頁Redis資料庫
- 你們要的MyCat實現MySQL分庫分表來了MySql
- 電磁場基本方程組·分介面上的銜接條件
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- Kubernetes 中實現 MySQL 的讀寫分離MySql
- 一句話從 MySQL 取出重複行MySql
- MySQL運維9-Mycat分庫分表之列舉分片MySql運維
- 一句話總結三十條認知偏見
- MySQL分組後,取出每組最新申請的一條記錄MySql
- mysql條件查詢MySql
- 遠端影片監控實現的條件
- MySQL: kill 會話的實現原理MySql會話
- AI速遞:21條一句話新聞moshi等AI
- ShardingSphere + Mysql,實現分庫分表、讀寫分離,並整合 SpringBootMySqlSpring Boot
- 實現ABAP條件斷點的三種方式斷點
- 3.1 MYSQL分庫分表實踐MySql
- MySQL 分組排序後 → 如何取前N條或倒數N條MySql排序
- drools中的條件 when
- 水庫選址的地理條件
- Jackson 庫中@JsonProperty和@JsonAlias註解實現序列化反序列化JSON
- 好程式設計師大資料培訓分享MySQL資料庫約束條件和自增長序列程式設計師大資料MySql資料庫