クエリ」タグアーカイブ

SQLSERVER パズル63 MINの扱いが難しく理解できない、相関サブクエリ

パズル63 問題文
dataのまとまりで連続しているnumを表示したい。

MINというと結果が1つのはずだが、ある条件になると複数を出力するみたい。
その条件がよくわかっていない。>>わかった。相関サブクエリだと繰り返し実行されるために複数回実行される
MINはたいていGROUPを使っていくつかのまとまり単位で最小値を出力する。つまりまとまりの中で1つだ。
この条件に当てはまらないのは、結合した条件で、結合されていないテーブルとの条件が加わったときに
MINが複数出力されるのかもしれない。がよくわかっていないので、またいつか勉強することにする。

続きを読む

SQLSERVER勉強中、SQL実践入門P255成績のところ 行を列に

/*
SQL実践入門P255成績のところを勉強中
*/
生徒に対して、複数の教科があり、生徒の教科の点数が複数存在するので、生徒に対して、横に複数教科が存在するようにしたい。
つまり、行を列に変換したいときにどうするか。
続きを読む

SQLSERVER テーブルから新規テーブルを作成する

テーブルのデータに間違いがあって、ストアドやクエリから出力されたデータから間違いを探したいときに、出力結果をエクセルに貼り付けるが、大量になると探すのが面倒になる。
出力された結果をテーブルを作成してその中に入れておけばあとからでも見ることができるし調べるのも楽になる。

–SQLSERVER テーブルから新規テーブルを作成する SELECT INTOは初回実行のみ、2回めはエラーになるので2回目はINSERT INTO
–tmpa:新規テーブル CREATEで事前に作らなくてもよい
–Proc:既存テーブル
–Procテーブルと同じデータを持つtmpaを作りたい。
–SELECT INTOで作成されるテーブルはIndexや外部キーとかは作成されないらしい。あくまでも列のデータがコピーされる
SELECT * into tmpa FROM Procs–tmpaは新規テーブルでCREATEしていない

–FROM 以降のテーブルをSELECTで出力して新規テーブルに挿入する場合は別名にする
–別名にしないと警告が出る

続きを読む

sqlの勉強 グループの中で連番になっていないデータやグループを探す方法を考え中

sqlの勉強 グループの中で連番になっていないデータやグループを探す方法を考え中

例えば
Aグループの中に複数のデータがありそのレコードの番号はグループごとに連番が割り振られる
ただしデータ削除でグループ内で連番の規則性が損なわれた
続きを読む

SQLのお勉強、グループごとにある最大値の行を取得する

/*SQLのお勉強、グループごとにある最大値の行を取得する
参考サイト
https://qiita.com/nogitsune413/items/f413268d01b4ea2394b1

考え方は、グループの中で最大を取得する。しかしこのテーブルだけでは、
他の情報氏名が得られないので、もとのテーブルとINNERJOINをして得る
つまり2段階方式 続きを読む