(1)mysql的開窗函式
row_number:從 1 開始,按照順序生成組內的記錄編號;
rank:從 1 開始,按照順序,相同會重複,名次會留下空的位置,生成組內的記錄編號;
dense_rank:從 1 開始,按照順序生成組內的記錄編號,相同會重複,名次不會留下空的位置;
開窗函式區別如下圖所示:first_value:取視窗第乙個值
last_value:取視窗最後乙個值
==注意:==
這裡也是乙個動態的當第n行時,如果不做特殊指定,當到達第n行時,每組的視窗範圍是
從第1行到第n行,因此第一組的視窗的first_value都是第1行的值,last_value都是當前行的值
if ( expr , v1 , v2 )執行邏輯:若 expr 為 ture 則 v1 否則 v2ifnull(字段,0)執行邏輯:如果欄位為 null 的話,就用 0 進行填充-- 如果字段值等於預期值,則返回結果 1 ,否則返回結果2case 字段 when 預期值 then 1 else 2 end
注意
case when 後面可以借多個 when 進行更加複雜的條件判斷
mysql 高階 mysql高階知識
一.儲存引擎 引擎 指的是乙個系統的核心部分 引擎有不同分類是為了適應不同的使用場景 檢視mysql支援所有引擎 show engines mrg myisam 是一堆myisam表的集合 用於做水平分表,如果乙個表中資料量太大 將導致效率降低 水平分表就是把整個大表拆成不同的小表,每一次查詢 會判...
mysql高階3 MYSQL高階
檢視 create view v employee asselect a.empid,a.empname,a.gender,b.deptname from employee a left join dept b on a.deptid b.deptid select from v employee ...
mysql高階高階資料操作
mysql 插入高階操作 衝突處理 on duplicate key update 更新教室 class 222 主鍵衝突替換 replace into my class values b1 333 高階資料更新 複製建立表 create table my copy like my class 蠕蟲...