令和5年春期試験 午後問6【データベース】

管理人  
(No.1)
令和5年春期試験 午後問6(データベース)についての投稿を受け付けるスレッドです。
2023.04.16 00:05
ぬささん 
(No.2)
皆さんの回答を教えて欲しいな
2023.04.16 16:35
管理人  
(No.3)
投稿内にSQL文の一部が入っているとWAFにより投稿拒否されてしまうことがあります。SQL文は全角文字とかカタカナにして投稿いただけると助かります。
2023.04.16 16:47
高校3年さん 
(No.4)
この投稿は投稿者により削除されました。(2023.04.16 16:50)
2023.04.16 16:50
高校3年さん 
(No.5)
管理人さんありがとうございます!
2023.04.16 16:49
高校3年さん 
(No.6)
たたき台どうぞ

1a   右矢印     b   従業員コード(主キー)

2(1)c インナージョイン   d   フルアウタージョイン
e  ビトウィーン  f B.職務区分 = '02'
g グループバイ 従業員コード, KPIコード
h 組織ごと_目標実績集計_一時
i カウント(*)

(2) 研修管理システムで管理している追加したKPI項目に関する実績値がない場合
2023.04.16 16:51
ぶきさん 
(No.7)

従業員コード(主キー下線)
INNER JOIN
LEFT OUTER JOIN
BETWEEN
A.役職コード='02'
GROUP BY 従業員コード, KPIコード
組織ごと_目標実績集計_一時
COUNT(*)
組織の全ての従業員について日別個人実績のレコードが存在しない場合

最後は苦し紛れです…
2023.04.16 16:55
イツさん 
(No.8)
問1 a 右
    b 従業員コード
問2 c インナージョイン
    d レフトジョイン
    e between
    f b.職務区分=’02’
    g グループバイ  セレクトの2つ
    h 項番4のテーブル名
(2)集計年月日より前に異動になった  みたいな

対戦よろしくお願いします
2023.04.16 16:58
パニック真っ只中さん 
(No.9)
設問1  a:→  b従業員コード※主キー
設問2  (1)c:INNER  JOIN
              d:LEFT  OUTER  JOIN
              e:BETWEEN
              f:B.職務区分='02'
              g:GROUP  BY  従業員コード,KPIコード
              h:組織ごと_目標実績集計_一時
              i:COUNT(A.従業員コード)
        (2)日別実績のない従業員の日別個人実績テーブルのレコードが作成されていない場合

……iのCOUNTを何を血迷ったのかSUMにしてしまいました。これで1、2点足りなくて落ちたらと思うとパニックです……
2023.04.16 17:01
テストさん 
(No.10)

従業員コード(主キー下線)
INNER JOIN
LEFT JOIN
BETWEEN
A.役職コード='02'
GROUP BY 従業員コード, KPIコード
組織ごと_目標実績集計_一時
COUNT(A.従業員コード)
休職などで全く実績が無い従業員の実績レコードが無い場合
みたいな感じ
2023.04.16 17:04
ななしさん 
(No.11)
設問1

従業員コード(実線)

設問2
インナージョイン
ライトアウタージョイン
大なりイコール
B.役職名=’02’
グループバイ従業員コード,kpiコード
組織ごと_目標実績集計_一時
カウント(c.従業員コード)

設問2(2)はわかんなくて空白です
設問2は全体的に自信なしです、、

ビットウィーン全く頭に出てこなかった、、
2023.04.16 17:05
テストさん 
(No.12)

従業員コード(主キー下線)
INNER JOIN
LEFT JOIN
BETWEEN
B.職務区分='02'
GROUP BY 従業員コード, KPIコード
組織ごと_目標実績集計_一時
COUNT(A.従業員コード)
休職などで全く実績が無い従業員の実績レコードが無い場合

さっきの間違いで職務区分でした。
2023.04.16 17:06
そうすさん 
(No.13)
テーブル名の所を物凄い凡ミスしてしまった...
2023.04.16 17:12
絶望さん 
(No.14)
慌てすぎて01にしてしまった...
2023.04.16 17:14
名無しさん 
(No.15)
<>’01’ではなくて<>’02’にしてしまった
2023.04.16 17:27
マスさん 
(No.16)
カウントは従業員かー
2023.04.16 17:28
葉っぱさん 
(No.17)

従業員コード(主キー下線)
INNER JOIN
LEFT   OUTER  JOIN
BETWEEN
A.職務区分 ='02'
GROUP BY 従業員コード, KPIコード
組織ごと_目標実績集計_一時
COUNT(*)  AS  対象従業員数
日別実績のない従業員のレコードがある場合

最後の設問はわからなかったです。
2023.04.16 17:37
名無しさん 
(No.18)
pe.つけるの忘れてた;;
2023.04.16 17:39
疲れたーさん 
(No.19)
INNER JOINをの所JOINだけにしたんですけど正解になりますかねー
2023.04.16 17:39
Yeahさん 
(No.20)
B.職務区分=02
シングルクォーテーションつけ忘れました。
どうなるんでしょ
2023.04.16 17:44
GinSanaさん 
AP プラチナマイスター
(No.21)
この投稿は投稿者により削除されました。(2023.04.16 20:07)
2023.04.16 20:07
GinSanaさん 
AP プラチナマイスター
(No.22)
問題冊子が公開されたのでやってみました。

1a   右矢印     b   従業員コード(主キー)
aはまあいうまでもなく
bは月別個人目標から流用ができる

2(1)c インナージョイン   d   フルアウタージョイン
cはp35より振り落とさないとならないことがわかる
dは、レフトジョインの場合、従業員ごと_実績集計_一覧表にいま時点の退職者がいる場合、右に配置すると左にくっつかなくなるのでバツ。

e  ビトウィーン  f B.職務区分 = '02'
g グループバイ 従業員コード, KPIコード
h 組織ごと_目標実績集計_一時
i カウント(*)
iのアスタを列名にした場合、左テーブルがnullの場合にカウントできなくなる可能性があるのでアスタがいいと思う

(2)
従業員ごと_実績集計_一時の結合にしくる場合を考えると、年度途中入社でレコードを作らないとあるので、これを起点にすれば、年度途中入社で月別個別目標にレコードが存在しない場合をベースにかくといいんじゃないか?と思う。
2023.04.16 20:07
GinSanaさん 
AP プラチナマイスター
(No.23)
>INNER JOINをの所JOINだけにした
省略した結果はインナージョインと同じです。現場だったら突き返される可能性は高いです
2023.04.16 20:12
匿名希望さん 
(No.24)
fを  B.職務区分 = '02'  ではなく、職務区分 = '02'  とB.を省略してしまいました。これって正解もしくは部分点になるでしょうか?
2023.04.16 21:16
GinSanaさん 
AP プラチナマイスター
(No.25)
この投稿は投稿者により削除されました。(2023.04.16 21:21)
2023.04.16 21:21
GinSanaさん 
AP プラチナマイスター
(No.26)
一応DBMS的には、片方しかその列を持っていないなら補完でDBMSが迷うことはない(=どちらにも同じ列名がある場合、指定しない場合エラーになる)から、(たまたま)マルになるとは思います。ただ、他の記述に合わせる気がないんか?と採点者に思われる可能性はあります。
2023.04.16 21:21
匿名希望さん 
(No.27)
なるほど。ありがとうございます。
2023.04.16 21:30
お疲れ様でしたさん 
(No.28)
設問1 a:→ b:従業員コード
設問2 (1)
c:INNER  JOIN
d:OUTER  JOIN
e:BETWEEN
f:A.役職コード='02'
g:GROUP  BY  従業員コード、KPIコード
h:組織ごと_目標実績集計_一時
i:COUNT(A.従業員コード)
(2)日別個人実績に対象の従業員のKPIのレコードかま作成されていない場合

主キーの下線を忘れる痛恨のミス
最後は日本語が変ですね…。
2023.04.16 22:26
にこにこさん 
(No.29)
設問1 bに主キーの下線につけ忘れました、、、
設問2 (2)は役職区分が管理職から一般職に変わるような役職変更のあった社員については日別実績がない
という旨を記載しました、、、
管理職従業員は月別目標値は入れるけどKPI評価対象外⇒日別実績は取得しないと解釈。
2023.04.17 00:11
ざいごさん 
(No.30)
本文にも記号あったので、c,d→内部結合、左外部結合と書いてしまいました…
不正解ですよねぇ…
2023.04.17 10:15
アホさん 
(No.31)
B.職務区分<>'01'は正解でしょうか、、、
2023.04.17 14:34
テストさん 
(No.32)
既存のsqlの構文に合わせた方が良いと思います。
db問題は指定がなければ既存の記載がsqlであればsqlでの解答になります。

B.職務区分<>'01'の場合、今後新たな職務区分が追加になった時や使っていないコードがある時に意図しないデータがとれたり、プログラムに修正が生じる可能性があるため、
問題文の通り、素直に=の方が良いと思います。

db問題は単語の箇所は答えが明確な代わりにスペル間違いなど、前回全く部分点もらえませんでしたので厳しめに採点した方が良さそうです。
2023.04.17 14:59
さん 
(No.33)
LEFT JOINにしましたが、FULLの可能性もあるんですね…
2023.04.17 18:21
テストさん 
(No.34)
既に一時表に絞り込んでるんでLEFTでいいと思います。FULLにしたら関係ない人のデータが紐付きませんか?countの結果もおかしくなるかと思います。
2023.04.17 19:27
おやじさん 
(No.35)
c,dは説明文中の語句なので、それぞれ内部結合、左外部結合と記載しました。
2023.04.17 21:02
おやじさん 
(No.36)
そういえば、いつもは「表の別名.列名にしなさい」みたいな記載があった気がしますが、今回は無かったですね(見落としただけかも)
2023.04.17 21:03
けいさん 
(No.37)
c,dはSQL中にもありますよ…
2023.04.17 21:20
おやじさん 
(No.38)
さーて、秋に向けて勉強するかな・・・
2023.04.17 21:34
ぶきさん 
(No.39)
FULLにしてしまうとせっかく項番1で取り除いた中途退職者のレコードや、またはP34問題中に全従業員の実績値をもとに、とあることから管理職のレコードがある場合それまで含まれてしまうと思います。
2023.04.18 00:05
やあさん 
(No.40)
最後の記述ですが、年度途中は出力されないし実績がある場合なので、年度開始年月から集計日までの間で実績がない従業員のレコードは抽出すると考えました。なので年度開始年月から集計日までの間で実績がない従業員のデータがあった場合と書きましたがどうでしょうか?
2023.04.18 12:43
疑問さん 
(No.41)
LEFT JOIN
LEFT OUTER JOIN

って採点に違いがあるのかな…?
2023.04.18 14:47
葉っぱさん 
(No.42)
設問2の(i)について、TACの模範解答見て気になったのですが、これってCOUNT(※)だけで、AS  対象従業員数ってつけなくてもSQLとして機能するんですか?
E-R図のどこにも属性名としてなくて、図2項番4のSQL文の中に突然出てくるので、ここで定義しないといけないのかなと思って付け足したんですが、逆にまずかったりするんでしょうか。なにか記述の読み落としがあればそれまでですけども。
2023.04.18 17:05
ぷらずまさん 
(No.43)
この投稿は投稿者により削除されました。(2023.04.20 21:06)
2023.04.20 21:06
テストさん 
(No.44)
insertの条件なのと他のSUMもasをつけてないので要らないと判断しました。あっても大丈夫だとは思います
2023.04.18 19:38
りーぐんさん 
(No.45)
これカウント(*)じゃなくてカウント(A.従業員コード)にしたら×ですか?
2023.04.18 21:54
テストさん 
(No.46)
従業員の数なのでCOUNT(A.従業員コード)も正解になると思います。主キーだし件数変わらないので間違いないです。Bも同じ行数になります。


C.従業員コードはNULLになるから減るのでだめですけど
2023.04.18 22:52
room710さん 
(No.47)
問2fですが、
b.職務区分 like '02'
としてしまったのですが×でしょうか?
2023.04.19 11:07
うーさん 
(No.48)
設問1(2)の従業員コードの実線引き忘れって部分点ないのかな?やってしまった。。。
2023.04.20 18:19

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop