SQL

SQL

SQL GROUP BY と PARTITIONの違い

GROUP BY データが圧縮されて小計が表示されるPARTITION データは圧縮されずに小計や総計が表示できる
SQL

SQL:歯抜けデータを補完するための連番データyyyyMMを取得する

--先月から1年分のカレンダーデータを取得する DECLARE @from年月 date = dateadd(month,-12, GETDATE()) ,@to年月 date = dateadd(month,-1, GETDATE());...
SQL

SQL:WINDOW句で複数条件のPartition by Order byを使って移動平均、移動合計を表現する Union all は使わない

with 年合計 AS( SELECT 部門名 ,年月 ,sum(金額) over(PARTITION BY 部門名,年月) as 金額 ,sum(金額) over(PARTITION BY 部門名 order by 部門名,年月 rows...
SQL

SQL:yyyymm to date

CONVERT(date, convert(varchar,yyyymm) + '01')
SQL

SQL:UPDATE STATISTICS

--Customer テーブルについての統計を更新 UPDATE STATISTICS Customer; --Customer テーブルのCustomerStats1の統計を更新 UPDATE STATISTICS Customer ( ...
SQL

SQL Server 一時テーブルのあるtempdbの場所

System Databases→tempdb→Temporary Tables
SQL

SQL SETで実働に負担の少ないチューニングしたSQL文を考える

--ダーティリード SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; --デッドロックの際の優先順位 SET DEADLOCK_PRIORITY LOW; --ロックした場合に切断するまでの...
SQL

SQL 一時テーブル #tmp_table と Exists

一時テーブルの使い所はWITHと迷うところもありますが、INの中身を一時テーブルに置換えた使い方を提案します。 INの場合 select * from table1 where ID IN(1,2,3,4,5) union all sele...
SQL

SQL today to yyyymmdd

CONVERT(int, GETDATE(), 112) AS 'yyyymmdd' FORMAT(GETDATE(),'yyyyMMdd') AS 'yyyymmdd'
SQL

SQLのSETオプションから学ぶ

SET ROWCOUNT  指定の行数が返された後、SQL Serverのクエリの処理を停止する。SELECT TOPよりも優先される。 SET NOCOUNT  SSMSで実行した場合、通常カウント数が反映されますがONすることでカウント...
SQL

SQL テーブル名の列名を取得する

SELECT name FROM sys.columns WHERE object_id = (SELECT object_id FROM sys.tables WHERE name = 'テーブル名' )
SQL

SSMS クエリオプションで基礎以外の知識を知り中級者を目指す

クエリオプションで使える構文を増やす  SELECT,FROM,WHEREなどの基礎知識は初心者向けの書籍で学べます。しかし、そこからもう一歩進むのにとても苦労しました。初級と中級を繋ぐ書籍が少なく、中級向けの書籍も少ない。上級の書籍は意味...