common_table_expression-每天抓N筆資料
關於CTE介紹請看這: https://docs.microsoft.com/zh-tw/sql/t-sql/queries/with-common-table-expression-transact-sql 可能會覺得CTE跟temp table相似,都拿來暫存資料,但可以參考這個建議,視情況使用。 http://www.dotnettricks.com/learn/sqlserver/difference-between-cte-and-temp-table-and-table-variable 建議有sub-query可以使用CTE,寫起來比較直觀且易讀。 那今天就拿CTE拿抓每日前N筆資料來試試。 ;WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY convert(varchar(max), date, 111) order by XXX) AS rn FROM Table ) SELECT * FROM cte WHERE rn < N+1 語法很簡單,是一個有子查詢的語法,可以用CTE來寫,把日期分割當成Row number,變成table,再來在抓row number小於N+1就可以抓到每日N筆資料了,記得你用甚麼當排序就是抓那種排序的前N筆(XXX那邊修改)。