SQLマンちょっと来てー

1 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:45:01.564 ID:LLrwr37gr.net
以下の項目がある社員テーブルがあります。
シーケンス、社員ID、社員姓、社員名、年齢
主キーがシーケンスで、1つの社員IDに複数の年齢があるテーブル構造です。

この時、社員ID毎の最大の年齢のレコードってどうやって取得したら良い?

初心者なので煽りなしでお願いします

38 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:41:15.061 ID:LLrwr37gr.net

>>35
そこまではわかる
select 社員ID,max(更新履歴番号)
from 社員
group by 社員ID
↑このサブクエリは絶対必要だと思うんだけど、どこで使ったらいいのかわからん

36 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:38:50.038 ID:JzVCNobda.net

そうかんさぶくえりは条件に合致する全ての行毎にくえりがはっこうされます
今回は条件が無いのですべての行で(select シーケンス from テーブル where あいでー=あいでー order by とし desc limit 1)が計算され条件判定され最終的な結果に含むかが決まります

4 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:51:49.298 ID:MvKyUVxcd.net

せれくと ID、まっくす(年齢) ふろむ テーブルめい
ぐるーぷ ばい ID

20 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:06:38.119 ID:MvKyUVxcd.net

つーか、これは何?
学校かなんかの宿題か?

25 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:17:04.118 ID:JzVCNobda.net

— ぼく末rキライ
select * from テーブル
where シーケンス=(
select シーケンス from テーブル
where あいでー=あいでー
order by とし desc limit 1)

49 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:01:55.359 ID:JzVCNobda.net

>>46
良く見たらその前にinじゃなくて=だからさぶくえりが複数行返して死ぬ

8 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:53:52.896 ID:M0LyxrdF0.net

テーブル総ナメで何がしたいのか分からない設計だな

34 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:36:33.903 ID:LLrwr37gr.net

>>30
シーケンスは適当なんだ
社員IDは主キーじゃないよって為だけに入れた

43 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:56:40.551 ID:JzVCNobda.net

>>42
おんなじねんれいの別社員で死ぬ

50 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:03:05.471 ID:RFy+M/BU0.net

>>49
ほんとだw

7 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:53:22.154 ID:LLrwr37gr.net

>>3
例で挙げたから凄い変なテーブルになってしまった

サブクエリとかgroupで行けるとは思うんだけど、よくわからん…

29 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:29:09.567 ID:jfKprSjhd.net

>>28
自分でやれよ・・

16 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:03:18.692 ID:LLrwr37gr.net

>>10
実際にはもっと項目あるから全項目でgroup化は出来ないんだよね…

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めっちゃストレス貯まる

14 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:01:44.358 ID:MvKyUVxcd.net

手っ取り早くは
せれくと a.*、b.まっくすーえいじ
ふろむ
社員テーブル a
,
(
>>6
) b
ほえあー
a.ID=b.ID

汚くても良いならこれで

24 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:16:48.177 ID:LLrwr37gr.net

>>18
後だしになるけど、select句は共有のがあるから、from句以降でやりたい

52 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:09:17.610 ID:LLrwr37gr.net

>>51
SQLデベロッパーって使いやすい方?

40 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:47:45.538 ID:LLrwr37gr.net

>>37
社員テーブル
社員ID,所属部署コード,権限,社員姓,社員名,変更履歴番号

社員情報の変更はupdateじゃなくてinsertで実施する。
最大の変更履歴番号を持つレコードが最新の社員情報。
社員ID毎の最大更新履歴番号のレコード一覧を取得したい。
select句は全項目指定のものがあって触れない、from句以降で実現したい。

まとめるとこんな感じ

37 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:39:37.616 ID:RFy+M/BU0.net

>>34
ちょっとテーブル構造軽く書いてよ
そしたらsql組んでやるよ

3 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:49:21.949 ID:PpSnEvRP0.net

groupしてmaxかね
てか変なテーブルだな

68 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 09:10:18.333 ID:79zVqJrj0.net

何それ

27 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:21:22.873 ID:LLrwr37gr.net

>>25
末尾r嫌いなのにありがとう
それって1レコードしか取れなくないですか?

あと末尾rってなにの証?

58 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 23:10:58.334 ID:bkp9uy400.net

恐い

70 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 11:10:11.346 ID:wmWUKpia0.net

しねば?

56 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:20:44.066 ID:LLrwr37gr.net

>>55
あれoracle以外で使えるのん?
あとSQLはもうわからん?

31 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:33:20.864 ID:RFy+M/BU0.net

データ横持ちのテーブル嫌い

61 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 02:10:13.012 ID:x+W6Bb0O0.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

すまん

44 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:57:16.139 ID:LLrwr37gr.net

>>42
社員情報テーブルにある最大の更新履歴番号のレコードが取得されるSQLに見えるけど、俺の勘違い?

15 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:02:20.901 ID:MvKyUVxcd.net

>>12の方が綺麗だね

41 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:48:40.510 ID:LLrwr37gr.net

>>39
やっぱセンスないよな
自分でも思う

22 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:13:25.195 ID:LLrwr37gr.net

>>20
今SQL2回投げて実現してることを1発に纏めたいなって

65 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 06:10:05.948 ID:79zVqJrj0.net

それで?

26 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:21:04.146 ID:jfKprSjhd.net

>>22
うーーーーーーーん????
仕事じゃないよね?

55 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 21:19:24.125 ID:RFy+M/BU0.net

>>54
デベロッパー使えばいいじゃん?
あれフリーでしょたしか

2 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:46:59.760 ID:S6GS4Q4i0.net

max使え

45 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:57:44.063 ID:RFy+M/BU0.net

>>40
聞いといてテーブル情報シカトで組んじまった
そしたら取りたいのmaxの年齢じゃなくね

57 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 22:10:00.866 ID:jfKprSjhd.net

まだやってんのかよ

9 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:54:19.173 ID:LLrwr37gr.net

>>4
>>6
欲しいのは全項目なんだ…

47 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:59:42.412 ID:LLrwr37gr.net

>>36
相関サブクエリ?初めて聞いた
調べてみる

28 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:23:13.270 ID:LLrwr37gr.net

>>26
研修!
諦めて2回に分けたんだけど、やっぱり悔しいから1発でやりたい

42 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:51:54.021 ID:RFy+M/BU0.net

select ※
from
社員情報 a
where
a.年齢 = (select
,max(年齢)
from
社員情報
group by 社員コード
)

こんなんじゃだめか
いっつも流しながら組むから空だとむずいな

10 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 19:55:44.431 ID:5QzbOd2H0.net

>>9
んじゃ、社員ID, MAX(年齢) だけじゃなくて全項目入れりゃいいんじゃね

66 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 07:10:08.041 ID:79zVqJrj0.net

それで?

21 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:10:54.308 ID:LLrwr37gr.net

年齢を変更履歴番号とかにしたらわかりやすいかな
社員情報に変更があるときは行追加していく感じ
変更履歴が各社員IDで最大のレコードの一覧を取得したい

39 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:42:05.381 ID:jfKprSjhd.net

いや、もう答え出てるからね?
これでまだダメなら足を洗った方が良いよ

46 :以下、?ちゃんねるからVIPがお送りします:2018/01/22(月) 20:59:37.664 ID:RFy+M/BU0.net

>>43
たしかに死ぬなw
だめだテーブルとsql組める環境じゃないと組めねえ

67 :以下、?ちゃんねるからVIPがお送りします:2018/01/23(火) 08:10:19.770 ID:oB4+lRnw0.net

こわいよ

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

最近のコメント

コメントはまだありません
ページTOPへ↑