■ このスレッドは過去ログ倉庫に格納されています
SQLマンちょっと来てー
- 1 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:45:01.564 ID:LLrwr37gr.net
- 以下の項目がある社員テーブルがあります。
シーケンス、社員ID、社員姓、社員名、年齢
主キーがシーケンスで、1つの社員IDに複数の年齢があるテーブル構造です。
この時、社員ID毎の最大の年齢のレコードってどうやって取得したら良い?
初心者なので煽りなしでお願いします
- 2 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:46:59.760 ID:S6GS4Q4i0.net
- max使え
- 3 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:49:21.949 ID:PpSnEvRP0.net
- groupしてmaxかね
てか変なテーブルだな
- 4 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:51:49.298 ID:MvKyUVxcd.net
- せれくと ID、まっくす(年齢) ふろむ テーブルめい
ぐるーぷ ばい ID
- 5 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:52:49.905 ID:MvKyUVxcd.net
- >>3
Access辺りを使った学生向け教材にありそうだよね・・
- 6 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:53:05.056 ID:5QzbOd2H0.net
- SELECT 社員ID, MAX(年齢) AS max_age
FROM その変なテーブル
GROUP BY 社員ID
- 7 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:53:22.154 ID:LLrwr37gr.net
- >>3
例で挙げたから凄い変なテーブルになってしまった
サブクエリとかgroupで行けるとは思うんだけど、よくわからん…
- 8 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:53:52.896 ID:M0LyxrdF0.net
- テーブル総ナメで何がしたいのか分からない設計だな
- 9 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:54:19.173 ID:LLrwr37gr.net
- >>4
>>6
欲しいのは全項目なんだ…
- 10 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:55:44.431 ID:5QzbOd2H0.net
- >>9
んじゃ、社員ID, MAX(年齢) だけじゃなくて全項目入れりゃいいんじゃね
- 11 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:58:11.361 ID:MvKyUVxcd.net
- 簡単だが正直スマホで打つのは辛い
- 12 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:58:36.237 ID:JzVCNobda.net
- select
*,
(select max (とし) from テーブル where あいでー=あいでー)
from テーブル
- 13 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:01:41.851 ID:LLrwr37gr.net
- >>11
考え方だけでも教えて欲しい
- 14 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:01:44.358 ID:MvKyUVxcd.net
- 手っ取り早くは
せれくと a.*、b.まっくすーえいじ
ふろむ
社員テーブル a
,
(
>>6
) b
ほえあー
a.ID=b.ID
汚くても良いならこれで
- 15 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:02:20.901 ID:MvKyUVxcd.net
- >>12の方が綺麗だね
- 16 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:03:18.692 ID:LLrwr37gr.net
- >>10
実際にはもっと項目あるから全項目でgroup化は出来ないんだよね…
- 17 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:04:57.059 ID:5QzbOd2H0.net
- >>16
なら他の人が書いてるみたいに *使えばいいじゃない!!
- 18 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:04:59.416 ID:JzVCNobda.net
- -- ちょうふくいやならですてぃんくとする
select distinct
*,
(select max (とし) from テーブル where あいでー=あいでー)
from テーブル
- 19 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:05:54.394 ID:LLrwr37gr.net
- >>17
怒らないで…
- 20 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:06:38.119 ID:MvKyUVxcd.net
- つーか、これは何?
学校かなんかの宿題か?
- 21 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:10:54.308 ID:LLrwr37gr.net
- 年齢を変更履歴番号とかにしたらわかりやすいかな
社員情報に変更があるときは行追加していく感じ
変更履歴が各社員IDで最大のレコードの一覧を取得したい
- 22 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:13:25.195 ID:LLrwr37gr.net
- >>20
今SQL2回投げて実現してることを1発に纏めたいなって
- 23 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:15:53.336 ID:3JF63GPB0.net
- mysqlで開いてレコード全部みて一番高い数値を手書き
- 24 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:16:48.177 ID:LLrwr37gr.net
- >>18
後だしになるけど、select句は共有のがあるから、from句以降でやりたい
- 25 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:17:04.118 ID:JzVCNobda.net
- -- ぼく末rキライ
select * from テーブル
where シーケンス=(
select シーケンス from テーブル
where あいでー=あいでー
order by とし desc limit 1)
- 26 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:21:04.146 ID:jfKprSjhd.net
- >>22
うーーーーーーーん????
仕事じゃないよね?
- 27 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:21:22.873 ID:LLrwr37gr.net
- >>25
末尾r嫌いなのにありがとう
それって1レコードしか取れなくないですか?
あと末尾rってなにの証?
- 28 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:23:13.270 ID:LLrwr37gr.net
- >>26
研修!
諦めて2回に分けたんだけど、やっぱり悔しいから1発でやりたい
- 29 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:29:09.567 ID:jfKprSjhd.net
- >>28
自分でやれよ・・
- 30 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:32:15.710 ID:RFy+M/BU0.net
- 主キーがシーケンスってキモいな
- 31 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:33:20.864 ID:RFy+M/BU0.net
- データ横持ちのテーブル嫌い
- 32 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:34:12.461 ID:RFy+M/BU0.net
- 良く見たら横もちじゃなかったすまん
- 33 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:35:19.443 ID:LLrwr37gr.net
- >>29
答えじゃなくても、考え方とかヒントが欲しい…
- 34 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:36:33.903 ID:LLrwr37gr.net
- >>30
シーケンスは適当なんだ
社員IDは主キーじゃないよって為だけに入れた
- 35 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:36:39.949 ID:RFy+M/BU0.net
- >>33
group byとサブクエリ使え
- 36 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:38:50.038 ID:JzVCNobda.net
- そうかんさぶくえりは条件に合致する全ての行毎にくえりがはっこうされます
今回は条件が無いのですべての行で(select シーケンス from テーブル where あいでー=あいでー order by とし desc limit 1)が計算され条件判定され最終的な結果に含むかが決まります
- 37 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:39:37.616 ID:RFy+M/BU0.net
- >>34
ちょっとテーブル構造軽く書いてよ
そしたらsql組んでやるよ
- 38 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:41:15.061 ID:LLrwr37gr.net
- >>35
そこまではわかる
select 社員ID,max(更新履歴番号)
from 社員
group by 社員ID
↑このサブクエリは絶対必要だと思うんだけど、どこで使ったらいいのかわからん
- 39 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:42:05.381 ID:jfKprSjhd.net
- いや、もう答え出てるからね?
これでまだダメなら足を洗った方が良いよ
- 40 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:47:45.538 ID:LLrwr37gr.net
- >>37
社員テーブル
社員ID,所属部署コード,権限,社員姓,社員名,変更履歴番号
社員情報の変更はupdateじゃなくてinsertで実施する。
最大の変更履歴番号を持つレコードが最新の社員情報。
社員ID毎の最大更新履歴番号のレコード一覧を取得したい。
select句は全項目指定のものがあって触れない、from句以降で実現したい。
まとめるとこんな感じ
- 41 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:48:40.510 ID:LLrwr37gr.net
- >>39
やっぱセンスないよな
自分でも思う
- 42 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:51:54.021 ID:RFy+M/BU0.net
- select ※
from
社員情報 a
where
a.年齢 = (select
,max(年齢)
from
社員情報
group by 社員コード
)
こんなんじゃだめか
いっつも流しながら組むから空だとむずいな
- 43 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:56:40.551 ID:JzVCNobda.net
- >>42
おんなじねんれいの別社員で死ぬ
- 44 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:57:16.139 ID:LLrwr37gr.net
- >>42
社員情報テーブルにある最大の更新履歴番号のレコードが取得されるSQLに見えるけど、俺の勘違い?
- 45 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:57:44.063 ID:RFy+M/BU0.net
- >>40
聞いといてテーブル情報シカトで組んじまった
そしたら取りたいのmaxの年齢じゃなくね
- 46 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:59:37.664 ID:RFy+M/BU0.net
- >>43
たしかに死ぬなw
だめだテーブルとsql組める環境じゃないと組めねえ
- 47 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:59:42.412 ID:LLrwr37gr.net
- >>36
相関サブクエリ?初めて聞いた
調べてみる
- 48 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:01:11.121 ID:LLrwr37gr.net
- >>45
各社員IDの最大の更新履歴のレコードの一覧を取得したい
- 49 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:01:55.359 ID:JzVCNobda.net
- >>46
良く見たらその前にinじゃなくて=だからさぶくえりが複数行返して死ぬ
- 50 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:03:05.471 ID:RFy+M/BU0.net
- >>49
ほんとだw
- 51 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:04:10.461 ID:RFy+M/BU0.net
- オブブラあれば一発で組めるのに
いっつも文明の利器に頼りすぎなんだな
- 52 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:09:17.610 ID:LLrwr37gr.net
- >>51
SQLデベロッパーって使いやすい方?
- 53 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:11:38.862 ID:RFy+M/BU0.net
- >>52
デベロッパーは使いやすいね
PLSQLとかあれないと組む気しない
- 54 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:17:35.424 ID:LLrwr37gr.net
- >>53
やっぱそうなのか
pgadminめっちゃストレス貯まる
- 55 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:19:24.125 ID:RFy+M/BU0.net
- >>54
デベロッパー使えばいいじゃん?
あれフリーでしょたしか
- 56 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:20:44.066 ID:LLrwr37gr.net
- >>55
あれoracle以外で使えるのん?
あとSQLはもうわからん?
- 57 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 22:10:00.866 ID:jfKprSjhd.net
- まだやってんのかよ
- 58 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 23:10:58.334 ID:bkp9uy400.net
- 恐い
- 59 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 00:10:47.007 ID:HcqMzEOe0.net
- ばか
- 60 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 01:10:45.782 ID:PR5mPfE20.net
- それ
- 61 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 02:10:13.012 ID:x+W6Bb0O0.net
- ぬるぽ
- 62 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 03:10:13.048 ID:PR5mPfE20.net
- すまん
- 63 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 04:10:18.244 ID:OPDD39Zm0.net
- たしかに
- 64 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 05:10:25.477 ID:PR5mPfE20.net
- おやすみ
- 65 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 06:10:05.948 ID:79zVqJrj0.net
- それで?
- 66 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 07:10:08.041 ID:79zVqJrj0.net
- それで?
- 67 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 08:10:19.770 ID:oB4+lRnw0.net
- こわいよ
- 68 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 09:10:18.333 ID:79zVqJrj0.net
- 何それ
- 69 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 10:10:20.228 ID:SHB2Juwl0.net
- またか?
- 70 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 11:10:11.346 ID:wmWUKpia0.net
- しねば?
総レス数 70
15 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★