PostgreSQLSELECT的高階用法(CTE,LATERAL,ORDINALITY,WINDOW,SKIPLOCKED,DISTINCT,GROUPINGSETS,…)
標籤
PostgreSQL , CTE , LATERAL , ORDINALITY , WINDOW , SKIP LOCKED , DISTINCT , GROUPING SETS , distinct on
背景
1、WITH ORDINALITY,輸出函式返回記錄的每行行號
《PostgreSQL 9.4 Add SQL Standard WITH ORDINALITY support for UNNEST (and any other SRF)》
2、LATERAL,獨立子查詢內支援JOIN子查詢外面的表
《PostgreSQL 9.3 add LATERAL support》
3、GROUPING SETS, CUBE and ROLLUP。多維聚合
《PostgreSQL 10.0 preview 效能增強 – hashed aggregation with grouping sets(多維分析)更快,更省記憶體》
《PostgreSQL 9.5 new feature – Support GROUPING SETS, CUBE and ROLLUP.》
《Greenplum 最佳實踐 – 多維分析的使用(CUBE, ROLLUP, GROUPING SETS in GreenPlum and Oracle)》
4、window, 視窗查詢
《PostgreSQL 11 preview – SQL:2011 window frame clause全面支援 及 視窗、幀用法和業務場景介紹》
《車聯網案例,軌跡清洗 – 阿里雲RDS PostgreSQL最佳實踐 – 視窗函式》
《PostgreSQL 海量時序資料(任意滑動視窗實時統計分析) – 感測器、人群、物體等物件跟蹤》
《PostgreSQL 聚合表示式 FILTER , order , within group, over window 用法》
《用PostgreSQL描繪人生的高潮、尿點、低谷 – 視窗/幀 or 斜率/導數/曲率/微積分?》
《時序資料合併場景加速分析和實現 – 複合索引,視窗分組查詢加速,變態遞迴加速》
5、CTE,複雜SQL邏輯
《PostgreSQL 用 CTE語法 + 繼承 實現拆分大表》
《HTAP資料庫 PostgreSQL 場景與效能測試之 27 – (OLTP) 物聯網 – FEED日誌, 流式處理 與 閱後即焚 (CTE)》
《PostgrSQL 遞迴SQL的幾個應用 – 極客與正常人的思維》
《PostgreSQL 遞迴查詢CASE – 樹型路徑分組輸出》
《用PostgreSQL找回618秒逝去的青春 – 遞迴收斂優化》
《distinct xx和count(distinct xx)的變態遞迴優化方法 – 索引收斂(skip scan)掃描》
《時序資料合併場景加速分析和實現 – 複合索引,視窗分組查詢加速,變態遞迴加速》
《PostgreSQL 使用遞迴SQL 找出資料庫物件之間的依賴關係》
《PostgreSQL Oracle 相容性之 – WITH 遞迴 ( connect by )》
《遞迴優化CASE – group by & distinct tuning case : use WITH RECURSIVE and min() function》
《PostgreSQL 樹狀資料儲存與查詢(非遞迴) – Use ltree extension deal tree-like data type》
6、skip locked,跳過被鎖的記錄
《PostgreSQL 使用advisory lock或skip locked消除行鎖衝突, 提高几十倍併發更新效率》
7、distinct, 唯一,唯一數等。distinct on 某列(s),隨機提取一行。
《PostgreSQL 流式統計 – insert on conflict 實現 流式 UV(distinct), min, max, avg, sum, count …》
《HybridDB PostgreSQL “Sort、Group、distinct 聚合、JOIN” 不懼怕資料傾斜的黑科技和原理 – 多階段聚合》
《PostgreSQL distinct 與 Greenplum distinct 的實現與優化》
《PostgreSQL DISTINCT 和 DISTINCT ON 語法的使用》
《distinct xx和count(distinct xx)的變態遞迴優化方法 – 索引收斂(skip scan)掃描》
《遞迴優化CASE – group by & distinct tuning case : use WITH RECURSIVE and min() function》
參考
https://www.postgresql.org/docs/devel/static/sql-select.html
https://www.postgresql.org/docs/devel/static/queries-table-expressions.html#QUERIES-LATERAL
相關文章
- WITH AS 用法-CTE
- Nant的高階用法NaN
- Nginx 高階用法Nginx
- play高階用法
- SQL Server中distinct的用法SQLServer
- Pandas高階教程之:window操作
- T-SQL:CTE用法(十)SQL
- Python字典的高階用法Python
- sql - distinct 去重複的用法SQL
- Python——迭代器的高階用法Python
- Flutter 中漸變的高階用法Flutter
- typedef的一些高階用法
- [轉] Input的高階用法11例
- java高階用法之:JNA中的FunctionJavaFunction
- java高階用法之:JNA中的StructureJavaStruct
- 深入解析Vue中watch的高階用法Vue
- flutter系列之:Navigator的高階用法Flutter
- Vue.js中 watch 的高階用法Vue.js
- 詳解Vue中watch的高階用法Vue
- Python進階:切片的誤區與高階用法Python
- Python Django進階教程(三)(模型的高階用法)PythonDjango模型
- PHP yield 高階用法——網路PHP
- Shell-變數高階用法變數
- 7章 RxJava高階用法(一)RxJava
- 8章 RxJava高階用法(二)RxJava
- gojs 實用高階用法GoJS
- Pandas高階教程之:GroupBy用法
- curl與wget高階用法wget
- VIM高階用法筆記【轉】筆記
- hive 的函式 lateral view 用法詳解 | 附pdf下載Hive函式View
- java高階用法之:JNA中的回撥Java
- 淺談Vue-router的部分高階用法Vue
- flutter系列之:flutter中listview的高階用法FlutterView
- Ipython的一些高階用法(一)Python
- 02 . SaltStack高階用法(Python API)PythonAPI
- Linux下more命令高階用法Linux
- Python裝飾器高階用法Python
- Linux下mv命令高階用法Linux