■ このスレッドは過去ログ倉庫に格納されています
【急募】SQLの上達法
- 1 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:31:14.895 ID:J5xadKRaa.net
- 考え方がわからんのや!
- 2 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:32:30.938 ID:PMe5E5ZWr.net
- MySQLって奴?
- 3 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:33:01.604 ID:GnYDvrRH0.net
- SQLで本当に難しいのはチューニング
- 4 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:33:05.242 ID:J5xadKRaa.net
- >>2
まあそんなやつ
- 5 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:33:24.962 ID:gkvBY8TK0.net
- 触れる環境作れ
身近な何かをRDB設計しろ
叩きまくれ
- 6 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:34:12.267 ID:J5xadKRaa.net
- >>5
それしかないか
- 7 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:34:47.113 ID:YsJGtztI0.net
- 箱に入ってるものを検索してるだけじゃん
- 8 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:38:49.795 ID:gkvBY8TK0.net
- どういうレベルで分からないかにもよる
- 9 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:40:33.328 ID:dDfj3yIHd.net
- 効率的にインデックスサーチするよう設計する
- 10 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:42:08.950 ID:J5xadKRaa.net
- SELECT文
一致するレコードの中で時間が一番遅いとかでグルーピングとかするやつ
- 11 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:44:54.906 ID:gkvBY8TK0.net
- グルーピングか
キーがどれかだけの話やん?
- 12 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:49:20.631 ID:J5xadKRaa.net
- それの応用したやつ
- 13 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:53:43.607 ID:lFN6LguTa.net
- データ構造をちゃんと理解してれば余裕
正規化わからないレベルだとキツい
- 14 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:54:01.758 ID:XIqCLO4Zp.net
- 処理順がピンとくるといける
- 15 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:54:08.987 ID:gkvBY8TK0.net
- 具体例ある?
- 16 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 11:54:40.184 ID:x4CBSUWz0.net
- 数こなす
- 17 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:11:28.579 ID:J5xadKRaa.net
- 例えばこんなのすぐできる?
(問)
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
1 | 2007-11-12 | ggg
このようなテーブルから、下記のように
1 | 2007-11-12 | ggg
3 | 2007-11-12 | ddd
2 | 2007-11-11 | bbb
4 | 2007-11-10 | fff
各idに対して最新の1件だけ抽出するSQLの書き方を教えてください。
- 18 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:12:08.767 ID:J5xadKRaa.net
- 答えは見てもうわかるんだが、どう考えていくかがわからん
- 19 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:29:01.338 ID:cVsencC80.net
- select * from T
where (I’d, date) in (
select id,max(date) from T group by id
)
- 20 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:30:16.255 ID:lFN6LguTa.net
- having DATE=max(DATE)
とか出来た気が
- 21 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:30:46.231 ID:ADWCgmbza.net
- 仮想テーブル想像しろ
- 22 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:32:09.718 ID:SPEBUfFX0.net
- ID重複させんな!
- 23 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:32:12.989 ID:Ez45f6h90.net
- ゆとりなのでORMしかわからない
- 24 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:33:44.389 ID:lFN6LguTa.net
- >>20
havingじゃなかった
- 25 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:36:38.213 ID:+4lUh5fY0.net
- 実際にデータベースサーバ作ってコマンド投げてみるとすぐ理解できるよ。
テキストだけ見てても理解に到達するのは難しい。
- 26 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:40:32.423 ID:J5xadKRaa.net
- まあ触りまくるわ
- 27 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:41:13.919 ID:J5xadKRaa.net
- ちな模範解答
select A.ID,
A.DATE,
A.DATA
from TableName A
inner join
(select ID, max(DATE) as MAX_DATE
from TableName
group by ID
) B
on A.ID = B.ID
and A.DATE = B.MAX_DATE
;
- 28 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 12:55:21.776 ID:vvWuA2kW0.net
- >>27
(´・ω・`)こっちの方が好み
with vipQuery as (
select id, max(date) as maxDate from このようなテーブル
by id, date
)
select * from このようなテーブル
where (id, date) in (select id, maxDate from vipQuery )
- 29 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 13:07:21.639 ID:vRr+02hnM.net
- >>28
こっちのほうがわかりやすいが
知らない人に説明するのが面倒
- 30 :以下、?ちゃんねるからVIPがお送りします:2019/01/19(土) 13:18:05.154 ID:vvWuA2kW0.net
- >>29
(´・ω・`)知らない人はどこから湧いてきたの?
総レス数 30
6 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★