X



トップページDB@2ch掲示板
1002コメント316KB

SQL質疑応答スレ 19問目

■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2019/05/23(木) 20:25:40.60ID:???
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。

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

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

【質問テンプレ】
・DBMS名とバージョン
・テーブルデータ
・欲しい結果
・説明

前スレ:
SQL質疑応答スレ 18問目
https://mevius.5ch.net/test/read.cgi/db/1515071542/
0209NAME IS NULL
垢版 |
2020/02/08(土) 14:23:26.63ID:FADQTNtD
物理メモリもストレージ容量も大きいのに少しのことを大袈裟に言うやつは引退した方がいい。

ハードウェアの進化に知識が追いついていない。
0210NAME IS NULL
垢版 |
2020/02/08(土) 14:32:11.63ID:???
>Where TO_CHAR(sale_date, 'YYYY-MM-DD') = '1970-01-01'

こういうダメな例を書かないためには
SQL使うだけのやつもDB設計の基礎知らないといけないんじゃないか?
0211NAME IS NULL
垢版 |
2020/02/08(土) 14:37:55.61ID:???
自分の設計能力の低さをハード性能でカバーされてることに気づかないやつも引退したほうがいいけどな
0212NAME IS NULL
垢版 |
2020/02/08(土) 14:38:49.29ID:???
>Where TO_CHAR(sale_date, 'YYYY-MM-DD') = '1970-01-01'

確にこれは初心者
0213NAME IS NULL
垢版 |
2020/02/08(土) 14:43:36.83ID:1VUqo/WP
ON DUPLICATE KEY UPDATEのIF文について質問させてください

ON DUPLICATE KEY UPDATE
fb_like = IF(fb_like > VALUES(fb_like), fb_like, VALUES(fb_like))

このIF分の第二と第三の引数と戻り値の意味を教えて頂けないでしょうか。
第一は比較条件なのは分かりますが・・・
DUPLICATE KEY UPDATEのリファレンスを調べてもわかりませんでした・・・
0216NAME IS NULL
垢版 |
2020/02/08(土) 16:35:32.52ID:???
>取得した数字がレコードの数字より大きければ更新

取得した数字って書き方が悪いような
0217NAME IS NULL
垢版 |
2020/02/08(土) 16:50:58.57ID:???
>>209
>物理メモリもストレージ容量も大きいのに少しのことを大袈裟に言うやつは引退した方がいい。

性能要求が低くてスケールする必要のない小規模・オンプレならそういう認識でいいかもねw
0218NAME IS NULL
垢版 |
2020/02/08(土) 20:25:42.58ID:???
>>213
質問の内容自体はINSERT文にあまり関係ないというか単なるIF関数じゃないかな
IF自体はExcelのワークシート関数と同じく条件が真(True)なら第2引数、偽(False)なら第3引数の値を使う
でこれが今回のINSERT文になると
fb_likeに設定する値はUPDATE対象となるデータのfb_like(A)とVALUESで設定しようとしているfb_like(B)を比較して
A>BならAの値(何も変わらない)、そうでなければBの値になる

例えば最高得点を更新するような場合をイメージするといいかも
ただそれならA≧Bがよさそうではある
0219NAME IS NULL
垢版 |
2020/02/08(土) 20:48:16.27ID:???
>>218
> ただそれならA≧Bがよさそうではある
価が変わらない時は更新しないような最適化はされるんだろうか?
0220NAME IS NULL
垢版 |
2020/02/08(土) 21:39:21.29ID:???
>>219
MySQLのUPDATEは値が同じならUPDATEは実行されない
0221NAME IS NULL
垢版 |
2020/02/08(土) 21:56:14.22ID:rnVBcNFe
同じ値で更新するかどうかは製品の同時実行制御方式による。


多くの製品は同じ値でも更新してログを残す。

同じ値と異なる値で区別する方が実装が複雑になる。
0222NAME IS NULL
垢版 |
2020/02/09(日) 16:54:17.87ID:???
primary keyが被って他のカラムが違った場合そこをupdateするのってどうやります?
ついでに旧の値も保存したいです。
0223NAME IS NULL
垢版 |
2020/02/09(日) 17:02:29.95ID:???
primary keyが被るって、唯一無二のレコードじゃないのか?
0224NAME IS NULL
垢版 |
2020/02/09(日) 17:08:43.82ID:???
「そこ」を使用する場合一意に決められるように文を定義してください
0225NAME IS NULL
垢版 |
2020/02/09(日) 17:10:59.96ID:7YUFhOwr
>>222
その主キー列は代理キーではないということか?

主キー列の値がレコードを区別するだけのものでない場合は、テーブルの設計が誤っている。
0226NAME IS NULL
垢版 |
2020/02/09(日) 17:14:17.03ID:???
>>224
そこっていうのは非主キーのカラムです
0227NAME IS NULL
垢版 |
2020/02/09(日) 17:18:13.58ID:???
primary keyを指定してアップデートする
「そこ」とは、primary keyになる
旧の値を保存したいなら、
更新の履歴をとっておくようにする
0228NAME IS NULL
垢版 |
2020/02/09(日) 17:20:27.88ID:???
>>225
簡略化すると
商品というテーブルがあって
id(主キー)、名前、価格
というカラムで価格が変化するというような場合です
価格も主キーにするのがいいのですかね
0229NAME IS NULL
垢版 |
2020/02/09(日) 17:20:52.77ID:???
元の質問の理解が難しいが複合主キーの第一キーをprimary keyと言ってるのかね
0230NAME IS NULL
垢版 |
2020/02/09(日) 17:26:41.67ID:7YUFhOwr
>>228
なんでインサートで新しいレコードを作らないのですか?
0232NAME IS NULL
垢版 |
2020/02/09(日) 17:29:28.08ID:7YUFhOwr
設計の話がなぜかSQLの話にすり替わるのは初心者の特徴なのだろうか?
0233NAME IS NULL
垢版 |
2020/02/09(日) 17:31:06.13ID:???
リレーショナルデータベースの理論的な意味をすっ飛ばしてサロゲートキーあたりまえみたいな
教え方をするとこういうことになるといういい例。
0234NAME IS NULL
垢版 |
2020/02/09(日) 17:34:34.12ID:7YUFhOwr
>>233
よく読んだ?
0235NAME IS NULL
垢版 |
2020/02/09(日) 17:36:34.74ID:???
>>230
同じidが被るのは良くないかなと思いました

あとどっちが最新の価格かもわからなくなると


>>231
>>232
すいませんでした移動します
0236NAME IS NULL
垢版 |
2020/02/09(日) 17:36:53.35ID:7YUFhOwr
「primary keyが被って他のカラムが違った場合そこをupdateするのってどうやります?
ついでに旧の値も保存したいです。」

こんな狂った質問はスルーでよかった。申し訳ない。
0237NAME IS NULL
垢版 |
2020/02/09(日) 17:43:20.96ID:???
>>228
価格が変化すると言っても、商売の種類によって様々
生鮮食品を扱うとなればそれこそ日々変わるし
数年に一度価格見直しで一斉に変わるという業種もあるだろう
それによって設計も変わるし仕組みも変わる

相談したいなら、SQLの書き方を聞くスレではなく
DB設計の話題を扱うスレの方が相応しいと思うんだが
0238NAME IS NULL
垢版 |
2020/02/09(日) 18:00:13.65ID:???
どうしてもkey を変えたくないなら元情報用カラムをついかして元情報をそこに残すしかし複数の変更履歴残したいならば、変更用トランザクションデータを残して置けば変更履歴は追える
0239NAME IS NULL
垢版 |
2020/02/09(日) 18:53:18.53ID:???
テンポラルさんがスタンバってるよ
0240NAME IS NULL
垢版 |
2020/02/22(土) 22:26:47.17ID:???
他システムが出力したデータをoracleのnumber(3,16)型のカラムに格納しています

もともとの値が浮動小数でそのまま出力して格納しているため、
96.3が96.29999999996や96.3000000000004のような値になっています

Oracleのsqlで、このカラムからnumber(3,3)の96.300の結果を得るにはどうすれば良いでしょうか?
アドバイスよろしくお願いします
0243NAME IS NULL
垢版 |
2020/02/23(日) 21:08:24.31ID:???
number(3,3)って、全体で3桁、うち小数点以下3桁じゃなかったっけ?
0244NAME IS NULL
垢版 |
2020/02/25(火) 13:35:36.81ID:???
>>240
NUMBER(整数+小数の桁数、小数の桁数)だぞ
左側が多くはず
number(3,16)型とかおかしい
0245NAME IS NULL
垢版 |
2020/02/25(火) 14:54:57.84ID:???
ぶっちゃけ分かりにくいよね
その桁指定方法

誰が考えたのか知らんけど
0246NAME IS NULL
垢版 |
2020/02/25(火) 17:40:42.07ID:???
FortranやCの出力フォーマット指定に準じているみたい

Fortran
f12.5 12桁で出力,うち5桁が小数点以下.
e20.7 科学的表記の20桁で出力,うち7桁が小数点以下.

C
%4.2fの4は全体の桁数、2は小数点以下の桁数
0247NAME IS NULL
垢版 |
2020/02/25(火) 19:33:17.00ID:???
文章みればなんとなくわかるよね
まあわかってないのは質問者と>>240だけどw
0248NAME IS NULL
垢版 |
2020/02/26(水) 23:55:25.73ID:QqeJ9408
COBOLなんて最悪のわかりにくさだけどな。
0249NAME IS NULL
垢版 |
2020/02/27(木) 00:18:29.64ID:???
SQLとCOBOLって、殆ど同級生みたいなものだろう
0250NAME IS NULL
垢版 |
2020/02/27(木) 06:58:17.84ID:UItByFL3
>>249
まったく異なる
0251NAME IS NULL
垢版 |
2020/02/28(金) 22:13:19.38ID:???
>>249
どこがどう「同級生みたいな」もんなんだよ。
0252NAME IS NULL
垢版 |
2020/02/29(土) 03:02:30.76ID:???
SQL-86とCOBOL-85って殆ど同級生みたいなものだろう
って話じゃろうな
0253NAME IS NULL
垢版 |
2020/02/29(土) 10:59:20.17ID:???
流れトン切り、雑談的な質問で恐縮なんだが
みんなコードを学んでいく上で周囲の人が書いたコード見たりして学ぶのかな
なんとなく盗み見るようで気がひけるんだけど
名前出てるからこの人の参考になるなという人の時々見てるけど、こそこそやってて落ち着かない
モラルの点でどう思う?
0254NAME IS NULL
垢版 |
2020/02/29(土) 11:50:20.58ID:???
見れるところに置いてあるのなら、堂々と見れば良い
0255NAME IS NULL
垢版 |
2020/02/29(土) 13:48:05.06ID:???
わかった、ありがとう
そうする
0256NAME IS NULL
垢版 |
2020/03/02(月) 20:55:36.49ID:???
親ID 親Name 子ID 子Name ←列名
p1 pn1 c1 cn1
p1 pn1 c2 cn2

現在、クエリで上記の形で取得できているのですが、これを
ID Name IsParent
p1 pn1 true
c1 cn1 false
c2 cn2 false

のような形で取得することはできますか?
DBはoracle11gR2です
0257NAME IS NULL
垢版 |
2020/03/02(月) 21:31:35.40ID:???
(
select distinct 親ID as ID, 親Name as Name, true as IsParent from テーブル
) union all(
select distinct 子ID as ID, 子Name as Name, false as IsParent from テーブル
)
0258NAME IS NULL
垢版 |
2020/03/02(月) 21:50:57.19ID:rd6v8tKi
>>253
他人のものをよく見て、真似るのが基本中の基本。

さらに自分の中でも試行錯誤を繰り返す。

これをずっとやらないとコピペプロクラマにしかなれない。
0260NAME IS NULL
垢版 |
2020/03/03(火) 19:50:42.41ID:???
p1 pn1 c1 cn1
p1 pn1 c2 cn2
p2 pn1 c5 cn5
p2 pn1 c6 cn6
p3 pn1 c3 cn3
p3 pn1 c4 cn4
だったらどう取りたいのかが少し気になったわ
必ず親の次に子をとるなら・・・
0261NAME IS NULL
垢版 |
2020/03/03(火) 23:28:53.47ID:???
親の次とか意味が分からんけど、それより
p1 pn1 c1 cn1
c1 cn1 p1 pn1
とかあったらどうするんだろね
0262NAME IS NULL
垢版 |
2020/03/04(水) 18:33:46.19ID:56J4i3Lh
そもそも >>256 は何を言っているのかまったくわからない。

親子とはなんなんだ?
0263NAME IS NULL
垢版 |
2020/03/04(水) 18:52:49.25ID:???
>現在、クエリで上記の形で取得できているのですが

これから推測するに、元となるテーブルが一つ、二つあって
それからクエリ使って2行の例を導いたと思われる
だとすれば、元となるテーブルデータと取得したクエリを公開すれば
質問に対する適切なアドバイスを得れると思うが、本人は既に解決済と見える
0264NAME IS NULL
垢版 |
2020/03/04(水) 23:13:48.31ID:???
>>256です
たしかに前提条件も詳細な情報もなく
ほかの人から見れば分からないことだらけですね すみません
だいたい>>263の通りですが、あまり時間が取れてなくて解決していませんでした

>>260
IDが違えば基本的には名前は被らないですが、その例だと
p1 pn1 true
c1 cn1 false
c2 cn2 false
p2 pn1 true
c5 cn5 false
c6 cn6 false ...と取りたいです

>>261
循環はないようなテーブルですが、それを規制するものはないため、
クエリ側で循環の対策が必要ですね
0265NAME IS NULL
垢版 |
2020/03/04(水) 23:27:22.00ID:???
親子とは商品で例えると、セット品のようなもので
子がいない(セット品ではない)ものは子品番がNULLになっています
複数テーブルですが、一つにまとめて簡素化したものが以下になります

https://ideone.com/VRo2S0

ほしいデータは Where 注文番号 = 101だとすると、
品番 品名 親か
P001,親1,true
C001,子1,false
C002,子2,false
C003,子3,false
P002,親2,true

今までは普通にSampleテーブルのような形で取得し、
プログラム側で処理していたのですが、SQLでデータ整形ができるなら
(作り直している)プログラム側がスッキリするなと思いまして質問しました
0266NAME IS NULL
垢版 |
2020/03/04(水) 23:54:38.20ID:???
子が親になるケースもあるなら
unionした結果をID(と名前)でgroup byしてcase式使って集約

でもSQLで処理するとプログラム側で親子関係が見えなくなるから
1つの注文に対するデータ件数が十分少ないなら
SQLじゃなくプログラム側で処理したほうが柔軟性が高くていい気がする
0267NAME IS NULL
垢版 |
2020/03/05(木) 20:28:24.74ID:???
>>264
失礼。名前は直しわすれましたわ

そうなるとこんなかんじじゃないかね
select ID,Name,IsParent from(
 select 親品番 as ソートキー1,1 as ソートキー2,親品番 as ID,親品名 as Name,true as IsParent from Sample where 注文番号 = 101
 union all
 select 親品番 as ソートキー1,2 as ソートキー2,子品番 as ID,子品名 as Name,false as IsParent from Sample where 注文番号 = 101
) as TB order by ソートキー1,ソートキー2,ID
0268NAME IS NULL
垢版 |
2020/03/06(金) 03:37:51.75ID:23zUNF8S
いつもながらエスパーがいるね
0269NAME IS NULL
垢版 |
2020/03/07(土) 04:20:01.39ID:KvRjYJ+Z
DBMS名とバージョン
MySQL 5.6

テーブルデータ

shops
id | name
------------
1 | shopA
2 | shopB
3 | shopC
0270NAME IS NULL
垢版 |
2020/03/07(土) 04:20:22.33ID:KvRjYJ+Z
DBMS名とバージョン
MySQL 5.6

テーブルデータ

shops
id | name
------------
1 | shopA
2 | shopB
3 | shopC

rates
id | shop_id | rateA | rateB
-----------------------------
1 | 1 | 0.1 | 0.05
※ rateA, rateB は total_price に掛けるパーセンテージ。小数点切り捨て

orders
id | shop_id | type | name | price
-----------------------------------
1 | 1 | A | nameA | 100
2 | 1 | B | nameA | 200
3 | 1 | A | nameB | 50
4 | 2 | A | nameB | 300

欲しい結果
shop_name | type | total_price | x_rateA | x_rateB | exist
----------------------------------------------------------
shopA | A | 150 | 15 | 7 | 1
shopA | B | 200 | 20 | 10 | 1
shopB | A | 300 | 30 | 15 | 1
shopB | B | 0 | 0 | 0 | 0

説明
ordersを集計した結果が欲しいです。そのときordersテーブルが持っているtypeをshopごとに持たせたいです。つまりshopBはtypeBのorderを持っていませんが、集計結果にはtypeBも結果に入ってきてほしいです。
ほかに、ordersを集計しratesテーブルのレートを掛けたものをx_rateA,x_rateBとして集計してほしいです。
existはorderがあったかどうかの0,1です。

よろしくお願いします。
0271NAME IS NULL
垢版 |
2020/03/07(土) 07:36:24.25ID:???
SQLはりつけられなかったわ
結局typeはordersにしか情報がないなら
select type from orders group by type
でtypeテーブルを作る
それをshopsと直積で結合してその状態から
ratesとordersを結合して集計すればいいんじゃないの
existsは結合したordersのshop_idがnullなら0それ以外なら1
0272NAME IS NULL
垢版 |
2020/03/07(土) 09:01:41.05ID:???
>>267
1番目のselectでは同じ親品番が複数出てくるためDistinctを追加し、
union allの次のselectでは子品番のnullが出てくるためis not null を追加したところ
目的のデータが取得できました
ソートキーを入れる発想が思い浮かばなかったです
ありがとうございました
0273NAME IS NULL
垢版 |
2020/03/07(土) 11:04:48.35ID:???
なんか中継クラウドでチェックが入りインジェクションと見なされるみたい
ソースアップロードサイトに上げて、リンク張ればいいかも
0274NAME IS NULL
垢版 |
2020/03/07(土) 12:22:57.31ID:???
ここ最近Oracle使ってないから覚えてないけど
今回みたいなのはSQL1回でガチャガチャやるよりも
ストアドプロシジャで結果セット返すようにして
テンポラリテーブル作る
親データINSERT
子データINSERT
ソートして結果を返すってやったほうが自分はいいとおもってるけどね

269もtype欲しさに受注データをgroupbyとかほんとはやりたくないわ
ABしかないならそれ用のテンポラリテーブル作って結果を返すストアド作ったほうがいい気がする
0275NAME IS NULL
垢版 |
2020/03/07(土) 20:27:09.43ID:AGFNapIR
SQL Serverでは安易にできるけど
MySQLってストアドで結果セット簡単に返せたっけ?
Oracleはメッチャ大変だった記憶
0277NAME IS NULL
垢版 |
2020/03/08(日) 12:55:14.35ID:56DADZoB
>>276
おおお!ありがとうございます!!
すごい。

もし、shopCも入れる場合にはどのようにすればいいですか?typesとCROS JOINだと思うのですが、うまくできませんでした。
欲しい結果
shop_name | type | total_price | x_rateA | x_rateB | exist
----------------------------------------------------------
shopA | A | 150 | 15 | 7 | 1
shopA | B | 200 | 20 | 10 | 1
shopB | A | 300 | 30 | 15 | 1
shopB | B | 0 | 0 | 0 | 0
shopC | A | 0 | 0 | 0 | 0
shopC | B | 0 | 0 | 0 | 0
0278NAME IS NULL
垢版 |
2020/03/08(日) 13:04:30.24ID:???
>>277
ordersに入っていないshop名をshopsから取得すればできるんじゃないか
0279NAME IS NULL
垢版 |
2020/03/08(日) 13:08:35.25ID:???
こんな応用も考えられないやつがSQL使うんだな
業務のSQLだったら恐ろしいわ
0280NAME IS NULL
垢版 |
2020/03/08(日) 14:23:53.68ID:56DADZoB
>>278
https://www.db-fiddle.com/f/iFRAaUckQWb7FXKb3GRcC4/0

できました。ありがとうございます。

>>276

inner join (select distinct shop_id from orders) as shop_ids
この行は動きとしては cross join なんですね。

ordersのすべてのtypeと、ordersのすべてのshop_idをかけ合わせたベースとなる表をつくり、それ対して1:1になるshopsとratesをinner joinでくっけたあとに、そこにordresをで肉付けするようなイメージなんですね。
そしてsumなどの集計関数があるのでgroup byで集計する単位を決めているんですね。
勉強になりました。
0281NAME IS NULL
垢版 |
2020/03/08(日) 20:54:18.94ID:pHcaE5Qh
自作自演か
0282NAME IS NULL
垢版 |
2020/03/09(月) 21:48:51.86ID:???
>>280
>inner join (select distinct shop_id from orders) as shop_ids
>この行は動きとしては cross join なんですね。

その通り
join/inner joinにonなどで条件を付与しなければcross joinになる
意図を伝えるためにはcross joinと書いたほうがよかったかもね
0283NAME IS NULL
垢版 |
2020/03/09(月) 22:53:19.06ID:???
onかかないinner joinって標準SQLで許可されてる?
0284NAME IS NULL
垢版 |
2020/03/10(火) 00:43:11.43ID:???
結合条件の指定がないってだけだから、許されると思う
0285NAME IS NULL
垢版 |
2020/03/10(火) 02:07:58.27ID:lOpoK0/l
MySQLとOracleのマニュアル見てみたら省略可能になってるけど
ISO/IEC 9075-2:1999だと省略マークないね
結構いろんなDBMSで直積使ったけどエラーになった覚えははないな
0286NAME IS NULL
垢版 |
2020/03/10(火) 12:45:16.22ID:qD23V5J3
>>285
SQLSERVERでエラーになったような
0287NAME IS NULL
垢版 |
2020/03/10(火) 21:57:15.59ID:JFVN1pud
ネタだから付き合う必要はないよ。彼の最近のトレンドは直積。書き込みをよく見れば直積に絡む話ばかりだとわかる。
0288NAME IS NULL
垢版 |
2020/03/11(水) 11:58:29.46ID:???
onが必要な場合
on 1=1
とすれば同じ
0289NAME IS NULL
垢版 |
2020/03/11(水) 17:09:43.87ID:ce0+fihR
>>287
270だけどはじめてここに来たよ。
とても助かって感謝している。
0290NAME IS NULL
垢版 |
2020/03/11(水) 17:31:53.56ID:???
感謝はいいけど
どういう風に理解してくれたかだよな
次に生かせないでまた質問するだけならもうやめたほうがいい
0291NAME IS NULL
垢版 |
2020/03/11(水) 19:46:33.41ID:???
また聞けばいいだけだろう
0292NAME IS NULL
垢版 |
2020/03/11(水) 22:19:53.94ID:???
>>290

>>270での質問の仕方だったり
>>280の自分の理解をフィードバックする姿勢だったり
この手のスレでは珍しいくらいのまともな質問者だろ

それに対してケチつけることしかできないなら
君は人間をもうやめたほうがいい
0293NAME IS NULL
垢版 |
2020/03/12(木) 01:19:57.46ID:xuvPVMNh
ここで質問してくるやつは目的を書かないからタチが悪い。
0294NAME IS NULL
垢版 |
2020/03/12(木) 06:46:46.52ID:???
読解力がないのを人のせいにされても……
0295NAME IS NULL
垢版 |
2020/03/13(金) 20:38:00.16ID:???
■EXISTSを使用して。

データベース:オラクル

・氏名テーブルの姓、名前を検索情報にして以下の国語テーブル、算数テーブル、
英語テーブルからやまだたろうの、最高点を1レコード抽出するSQLのご教授を
お願いいたします。
※「EXISTS」を使用した、SQLのご教授をお願いいたします。
※英語は最高点が70点と2レコード存在しますが、
1レコードのみを抽出したいです。

■氏名テーブル(主テーブル)
姓 名前
やまだ たろう

■国語テーブル
姓 名前 点数
やまだ たろう80
やまだ たろう90
すずき しろう90

■算数テーブル
姓 名前 点数
いのうえ いちろう20
やまだ たろう50
やまだ たろう90

■英語テーブル
姓 名前 点数
しばた じろう20
やまだ たろう70
やまだ たろう40
やまだ たろう70

▼結果(1レコードのみ出力)
姓 名前 国語の点数 算数の点数 英語の点数
やまだ たろう90 90 70

宜しくお願いいたします。
0296NAME IS NULL
垢版 |
2020/03/13(金) 21:06:25.90ID:???
宿題は自力でやれ
0297NAME IS NULL
垢版 |
2020/03/13(金) 22:24:00.52ID:???
せめて、
こうやって見たけどうまく行かない、どうしたらいい?
みたいに、質疑出来るようにして欲しい
0298NAME IS NULL
垢版 |
2020/03/13(金) 22:33:29.25ID:???
なぜにEXISTS ??
このケースで普通使わんやろ
0299NAME IS NULL
垢版 |
2020/03/13(金) 22:51:21.65ID:???
最高点抽出するってんなら使うこともあるだろ
0300NAME IS NULL
垢版 |
2020/03/13(金) 23:25:11.92ID:???
maxの代わりか
実践で使うことはまずないな
0301NAME IS NULL
垢版 |
2020/03/14(土) 08:59:24.94ID:???
この条件でEXISTSはどうやってつかうんだ?
0302NAME IS NULL
垢版 |
2020/03/14(土) 10:03:46.52ID:???
not exists (自分より点数高い奴)

昔はmax()使うより良い実行計画吐くことも多かったんでよく使われた。
0303NAME IS NULL
垢版 |
2020/03/14(土) 11:11:26.29ID:???
氏名テーブル関係なくて笑うわ
0305NAME IS NULL
垢版 |
2020/03/14(土) 12:13:36.75ID:???
さんくす勉強になったわ
0306NAME IS NULL
垢版 |
2020/03/15(日) 18:02:27.90ID:???
>昔はmax()使うより良い実行計画吐くことも多かったんでよく使われた。
今となってはバッドノウハウ感満々だな

>>295がどこからこんなお題を持ってきたかが気になるわ
0307NAME IS NULL
垢版 |
2020/03/15(日) 19:45:32.09ID:???
今でもmaxだけで常に最適な計画が得られる保証はないわけだし、
引き出しとして持っておいて損はないと思うがな。
0308NAME IS NULL
垢版 |
2020/03/15(日) 23:07:31.36ID:???
まあ、引き出しとして持っといて損はないんだろうけど
実行計画いじりたいならまずヒントで何とかならんか検討すべきだしな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況