[過去ログ] SQL質疑応答スレ 19問目 (982レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): 2019/05/23(木)20:25 ID:??? AAS
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。

SQLという言語はISOによって標準化されていますが
この標準を100%実装したDBMSは存在せず、
また、DBMSによっては標準でない独自の構文が
追加されていることもあります。

質問するときはDBMS名を必ず付記してください。

【質問テンプレ】
省7
2: 2019/05/23(木)20:29 ID:??? AAS
SQL言語リファレンス一覧
Oracle Database
https://docs.oracle.com/cd/E96517_01/sqlrf/index.html
Microsoft SQL Server
https://docs.microsoft.com/ja-jp/sql/t-sql/language-reference
IBM DB2 Database
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/c0004100.html

PostgreSQL
http://www.postgresql.jp/document/current/html/sql.html
MySQL
省7
3: 2019/05/23(木)20:31 ID:??? AAS
過去スレ
18問目:2chスレ:db
17問目:2chスレ:db
16問目:2chスレ:db
15問目:2chスレ:db
14問目:2chスレ:db
13問目:2chスレ:db
12問目:2chスレ:db
11問目:2chスレ:db
10問目:2chスレ:db
省11
4: 2019/05/23(木)20:34 ID:??? AAS
よくある質問1

(問)
ID | DATE     | DATA
--+----------+-----
1 | 2007-11-11 | aaa
2 | 2007-11-11 | bbb
1 | 2007-11-10 | ccc
3 | 2007-11-12 | ddd
3 | 2007-11-11 | eee
4 | 2007-11-10 | fff
省20
5: 2019/05/23(木)20:36 ID:??? AAS
よくある質問2

(問)
key   data
----------------
1     a
1     a
1     b
1     b
1     a
2     b
省17
6: 2019/05/23(木)20:40 ID:??? AAS
よくある質問3

(問)
ID HOGE
01 A
01 B
01 C
02 A
03 B

HOGEをAもBもCも持っている、ID:01だけ取り出すにはどうすればよかですか

(答1)
省19
7: 2019/05/23(木)20:41 ID:??? AAS
よくある質問4

(問)
列の数が可変な問合せはどう書きますか?

(答)
標準SQLでは書けません。
pivotという機能を搭載したDBMSなら一見書けそうですが実はやっぱり書けません。
Oracle 11g以降でpivot xmlというキーワードを使用すれば一応可変っぽくはなります。
が、素直にプロシージャを書くかアプリケーションで処理したほうが良いでしょう。

SQL Serverのpivot(2005以降)
http://msdn.microsoft.com/ja-jp/library/ms177410.aspx
省3
8: 2019/05/23(木)20:43 ID:??? AAS
よくある質問5

(問)
年月(YYYYMM)を指定し、その年月に対応する年月日を取得したい

 例:201006を指定したら、以下の結果を得たい

   20100601
   20100602
    ・
    ・
    ・
   20100630
省20
9: 2019/05/23(木)20:44 ID:??? AAS
以上、テンプレ終わり
10: 2019/05/25(土)01:14 ID:1nV7ZQjK(1) AAS
空文字列を入れたがるやつにかぎって、レコードによっては空文字列だったり、NULLだったりと両方想定してないといけない設計にして、運用ではまる。
11: 2019/05/25(土)01:39 ID:??? AAS
苦労しているんだね
同情します
12
(2): 2019/05/25(土)06:44 ID:LBGwosS9(1) AAS
SQLじゃなくてテーブル設計の質問なんですが、お願いします。

商品を複数の倉庫に保管するモデリングなんですが、現状は、
----------------------------------------------------------------
pkey | 商品ID | 商品名 | 倉庫1 | 倉庫2 | 倉庫3 | 倉庫4 | 倉庫5 |
----------------------------------------------------------------
という風になって、保管する場所が増えるたびに、倉庫カラムが増える設計になっています。
これは、
-------------------------
pkey | 商品ID | 倉庫番号 |
-------------------------
省12
13
(1): 2019/05/25(土)07:25 ID:??? AAS
毎回思うけどレコード増えてなにが困るん?
14
(1): 2019/05/25(土)07:54 ID:??? AAS
>>13
?もともと1レコードに収まっていたデータを多数のレコードに分割すると、読み取りのパフォーマンスは落ちないでしょうか?
?副作用ですが、正規化することで、正規化前と比べてテーブル数が増える(20倍程度)と、結合で速度が落ちないか?
という点が不安です。
15
(1): 2019/05/25(土)08:54 ID:??? AAS
>>12
倉庫が増えたら項目増やさないといけなくなるのと
倉庫ごとに数量、単価、金額もちたくなるとさらに項目が増える

もとのデータは下のテーブル形式で、夜間処理で照会用の中間テーブルとして上のテーブルをつくればいい
16: 2019/05/25(土)10:08 ID:??? AAS
>>15
おっしゃる通りです。経験のなさから、そこまで考えが及びませんでした。
まずは第三正規形に正規化した状態でのパフォーマンス確認からしてみます。
17: 2019/05/25(土)11:34 ID:??? AAS
>>12
その商品、特定倉庫1ヶ所にしまうのかい?
18: 2019/05/25(土)11:45 ID:??? AAS
SQL質疑スレでやるよりも、こちらでした方が良いかも

DB設計を語るスレ 10
2chスレ:db

答える人は同じなんだろうけどね
19: 2019/05/25(土)13:46 ID:Z+RZPCej(1) AAS
縦横問題はRDBができて以来定番の課題&質問になってるな
PIVOTとかも使いにくいしいい加減DBMS側でうまいことしてほしいところ
20: 2019/05/26(日)00:42 ID:??? AAS
今なら
「ラクテンスーパーポイントスクリーン」
登録するだけでRポイント150pが貰える!

※Androidアプリのみ
iPhoneユーザーはWeb版から登録のみ可能

登録完了後に表示される招待コ一ドをお持ちですか?のところで
「i9WPjs」
を入力する

完了

祭りだ♪ヽ('∀')メ('∀')メ('∀')ノワッショイ
1-
あと 962 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.264s*