zero

記錄我所知道的網路資訊

0%

大家了解兩者的差異嗎? * group by: 對檢索結果的保留行進行單純分組,返回聚合之後的組的數據統計值的記錄。劃分為多組,每組返回一行。 * partition by: 返回分組裡的每一條數據,在應用關聯的視窗函數前確定行集的分區和排序,然後,視窗函數將計算每一行的值。 SQL 篩選各種資料時,最基本操作就是某種準備替資料分組。其實除了使用 SQL 之外,日常生活中整理資料、查詢資料時,替資料建群組。 而在 SQL 中具有建立群組功能就是 GROUP BY 跟 PARTITION BY。這兩種方式都能利用資料表指定的 KEY 來分割資料,而兩者不同
閱讀全文 »

前言 SQL 的效能一直是 DB 工程師必須面對的主要課程之一,甚至有些人認為是唯一的課題。此文章是改善 SQL 的效能,讓執行速度更快減少更多資源。 使用效率的搜尋 若子查詢為參數 使用 EXISTS 代替 IN,在 IN 述詞很方便,也很好讀,但卻會遇到效能瓶頸的問題,若當 IN 參數 (1,2,3) 這種 List 時繼就不需要改寫,但如果以子查詢為參數就必須要注意,通常 NOT IN 跟 NOT EXISTS 都是回傳相同的結果,但是使用 EXISTS 建立子查詢卻快的很多。 Class_A id (識別子)name (姓名)1郁2瑋3銘Class_B id (識別子)name
閱讀全文 »

前言 SQL 提供連結會依照特徵命名,分別為內部連結、外部連結、交叉連結這些,且這些連結通常會以不同的資料表為對象,但 SQL 並未禁止同一張表用連結,此時在同一張資料表套用連結稱為自我連結 self join。 一、重複排序、排列、結合 假設有張表商品與價錢資料表、其中共有蘋果、橘子、香蕉三筆記錄不得不製作業績表時候,必須取得商品組合。 name (產品名稱)price (價錢)蘋果100橘子50香蕉80說是組合其實組合的種類有兩種,一種是重視的排列順序有序數對 (ordered pair),另一種是不重視順序的無序數對(unordered pair)。要建立有序數對非常簡單,例如:
閱讀全文 »