一句話實現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
- 如何實現條件組合元件元件
- MySQL實現分組排序MySql排序
- 【Django】組合條件的搜尋功能實現Django
- mysql實戰--MYSQL中的SQL分組方法MySql
- 一句話從 Mysql 取每組前三名MySql
- MySQL資料庫中的分組函式ROLLUPMySql資料庫函式
- 一句話為你解讀Oracle資料庫選件Oracle資料庫
- Mysql索引的使用-組合索引+跳躍條件MySql索引
- MySql序列實現MySql
- MySQL分組排序取前N條記錄 以及 生成自動數字序列 的SQLMySql排序
- 在MySQL中建立實現自增的序列(Sequence)MySql
- PHP查詢資料庫中滿足條件的記錄條數(二種實現方法)PHP資料庫
- 一句話實現欄位拆分成多行
- 一句話區分currentTarget和target
- (11)mysql 中的條件定義、處理MySql
- Mysql索引的使用 - 組合索引 + 範圍條件的處理MySql索引
- MySQL的where條件字串區分大小寫的問題MySql字串
- 電磁場基本方程組·分介面上的銜接條件
- javaee導測(ssh框架)分頁 mysql資料庫(帶條件查詢)Java框架MySql資料庫
- 一句話得到 SQL 難實現的去年同期比SQL
- MySQL分組後,取出每組最新申請的一條記錄MySql
- 資料庫的集合,分頁及約束條件資料庫
- Java多型實現的必要條件Java多型
- 布朗語料庫中條件概率分佈函式ConditionalFreqDist使用概率分佈函式
- Oracle 連線條件中帶有OR的測試Oracle
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- redis實現像關係型資料庫一樣按條件高效查詢分頁Redis資料庫
- 一句話總結三十條認知偏見
- 你們要的MyCat實現MySQL分庫分表來了MySql
- 一句話從 MySQL 取出重複行MySql
- MySQL運維9-Mycat分庫分表之列舉分片MySql運維
- 遠端影片監控實現的條件
- Aspectj 實現Method條件執行
- Percona MySQL 5.6 WHERE 條件中 OR 的索引測試MySql索引