X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0908NAME IS NULL
垢版 |
2017/06/30(金) 12:18:20.40ID:TPE85msy
>>907
わからんなら絡むなって
0909NAME IS NULL
垢版 |
2017/06/30(金) 12:22:22.27ID:???
↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価

↑この下に、どういう結果を期待しているのか、書いてみて
0910NAME IS NULL
垢版 |
2017/06/30(金) 17:40:19.16ID:???
ランキングってのは該当点数の平均点の順位で良いのか?
とりあえず書いてみた
with
tmpデータ as (
select 名前,AVG(点数) as 平均点,COUNT(名前) as テスト回数
from(
select * from table点数 t
where t.年月日 >= (select MAX(最終評価年月) from table成績 where 名前=t.名前)
) t2
group by 名前
)
select
(select COUNT(*)+1 from tmpデータ where 平均点>x.平均点) as ランキング,
table成績.名前,テスト回数,平均点,評価
from table成績
left join tmpデータ x on table成績.名前=x.名前

ウィンドウ関数とか使えばもうちょいきれいに書けるのかもしれんが
あれ苦手なんだよなぁ
0911NAME IS NULL
垢版 |
2017/06/30(金) 18:39:46.15ID:qR8XYDhd
レスがいっぱい早めに帰ってよかった!
>>907
>>909
今回こんな感じの結果を求めていました。
ランキング 名前 テスト回数 平均点 評価
1 花道 3 10 E
2 三井 2 30 A
3 赤木 1 80 C

>>906
>>910
ありがとうございます。さっそく試してみます。
0912NAME IS NULL
垢版 |
2017/06/30(金) 18:40:50.73ID:qR8XYDhd
>>911
A と Cが入れ替わりだった
0913NAME IS NULL
垢版 |
2017/06/30(金) 21:25:44.76ID:qR8XYDhd
>>906 >>910
ありがとうございました。思ってたよな動きになりました。


追加で質問なのですがsqlserverだとして
>>906の書き方
>>910の書き方で
↓のようなのを作るのは問題ないですか?

>>904
table点数に 身長等のカラムを300追加したtable
新規評価ビューと同じようなビューを30作る。
DBとしてはDB湘北、DB陵南、DB海南等を10作成↑の内容を各DBが持っているとして


DB湘北の
table点数に数秒に1件Insertされて数百万件のデータが作られていく
Insertされるごとに30のビューが更新されていくと思うのですが、これくらいならSQLserverで問題なく動くかな?

Insertは各DBの中のtable点数だけですが
10のDBのtable点数に同時にInsertは影響がでる?のかきになります
0914NAME IS NULL
垢版 |
2017/06/30(金) 21:40:40.02ID:???
>Insertされるごとに30のビューが更新されていく
普通のビューは実データもってないから、ビューが更新されるとかありません

あとは何したいかわからんけど、実機で性能評価してください
ちゃんとした設計のDBなら、数秒に1回の追加も数百万のselectも問題ないけど

まあ、俺なら一つのテーブルにカラム300とか、まずほんとに正しいか疑うけどな
0915NAME IS NULL
垢版 |
2017/06/30(金) 22:27:23.42ID:ZXEQZqmX
>>914
> ちゃんとした設計のDBなら、数秒に1回の追加も数百万のselectも問題ないけど
これは純粋にハードの性能の問題です嘘をつかないでください
0916NAME IS NULL
垢版 |
2017/06/30(金) 23:06:16.04ID:qR8XYDhd
やりたいこととしては単純にビューの内容をGridやエクセル等に表示したいです。
30のビューを作るとしても
実機で性能評価する前に>>913ぐらいなら余裕でしょなのか、そもそも無茶なのか簡単な感触がほしいなと。

300カラムは名前、時間+5tableぐらいに分割できますが
一つのビューは1tablか2tableの情報なのでtableは分割したほうがいい?と思うのですが
insaret*5がどのくらい時間かかるかわからなかったのでinsaret*1の300カラムで聞いてみました。
やっぱり分割するべきですかね
0917NAME IS NULL
垢版 |
2017/06/30(金) 23:38:24.64ID:???
>>915
今どきのまともなハードなら
ってのを追加しとくわ

それなりのハードでもDB設計腐ってたら、その程度の処理でも大変なことになるけどな
0918NAME IS NULL
垢版 |
2017/06/30(金) 23:57:06.72ID:ZXEQZqmX
>>917
「大変なこと」とはなんですか?ぼやかさずに具体的に言えばいいでしょうに
前言撤回します
アナタ嘘はついてないですね
無知なだけのようです
0919NAME IS NULL
垢版 |
2017/07/01(土) 08:03:41.20ID:???
>>918
煽るしかできないならよそに行け
0920NAME IS NULL
垢版 |
2017/07/01(土) 12:22:27.21ID:q2SoX0Ck
>>919
自分の間違いを指摘されると「煽られた」ってw
どんだけ自分に都合いいんだよ馬鹿だなw
0921NAME IS NULL
垢版 |
2017/07/01(土) 13:13:26.96ID:???
参考までに効きたいんだが、
毎秒100万アクセスがあるようなシステムってどういうものなの?
0922NAME IS NULL
垢版 |
2017/07/01(土) 13:47:10.80ID:???
>>921
某夢の国関係の予約サイトで予約開始直後とかは数十万TPS行く
0924NAME IS NULL
垢版 |
2017/07/01(土) 19:48:24.43ID:???
>>920
間違いの指摘ってこれ?
> これは純粋にハードの性能の問題です嘘をつかないでください
インデックスとかパーティションも知らんとかバカ過ぎるだろ
0925NAME IS NULL
垢版 |
2017/07/01(土) 20:14:29.74ID:???
他人をバカにしていないと自分の存在価値を確認できない人が多いのかな
0926NAME IS NULL
垢版 |
2017/07/01(土) 20:16:41.51ID:6xOw4q9p
>>925
お前それ好きだよなあw
どんだけバカにされたんだよw
0927NAME IS NULL
垢版 |
2017/07/01(土) 20:39:02.91ID:???
>>926
いや他人をバカにして草生やしてる人を結構見かけるから
そういう人の心の中をちょっと想像したりして楽しんでるだけだよ
0928NAME IS NULL
垢版 |
2017/07/01(土) 20:41:38.97ID:6xOw4q9p
>>927
うわぁ…メッチャ悪趣味じゃんお前…
0929NAME IS NULL
垢版 |
2017/07/01(土) 20:44:01.18ID:???
>>928
まあそうかもね
否定はしないよ

ただそういう人見てるとそんなに自意識過剰にならずにもっと気楽に生きればいいのになぁって思う
0930NAME IS NULL
垢版 |
2017/07/01(土) 20:48:41.63ID:6xOw4q9p
>>929
え?お前が気張ってるからそんな狂った趣味になんだぜ?
0932NAME IS NULL
垢版 |
2017/07/01(土) 21:01:39.74ID:6xOw4q9p
>>931
大体さあ無知ってお前が思ってる程恥ずかしい事じゃないぜ
一つ教わればその分お前が一つ賢くなるんだから
もっとフラットに自分をさらけだせばいいのに
0933NAME IS NULL
垢版 |
2017/07/01(土) 21:04:39.83ID:???
>>932
いやなぜ俺がフラットにさらけ出してない前提なのかは疑問だが
あなたのいう通りだと思うよ
0934NAME IS NULL
垢版 |
2017/07/01(土) 21:06:46.92ID:6xOw4q9p
>>933
え?お前自分の無知を指摘されると馬鹿にされたって思う側の人だろw
簡単に分かった気になるなよ
無知でいいんだよ少しずつ理解してけば
0935NAME IS NULL
垢版 |
2017/07/01(土) 21:09:18.42ID:???
>>934
いや違うけど…
バカにされようがされまいが、自分の価値には何ら影響を与えないので
なぜなら自分で自分のことダメだと思ってないから
0936NAME IS NULL
垢版 |
2017/07/01(土) 21:10:42.91ID:6xOw4q9p
>>935
それを「気張ってる」って他人は言うんだけど…
0937NAME IS NULL
垢版 |
2017/07/01(土) 21:11:55.12ID:???
ちょっと語弊があったかも
正確にはバカにされていると認識することがないといった方がいいのかもしれない
0938NAME IS NULL
垢版 |
2017/07/01(土) 21:13:24.26ID:6xOw4q9p
>>937
いや…それはそれで精神的に問題あるぞ…
何度も言うけど無知でいいんだよ
もっと素直になれば?w
0939NAME IS NULL
垢版 |
2017/07/01(土) 21:15:38.63ID:???
>>938
さっきから無知という言葉を連発しているけど、なにかコンプレックスがあるの?
0940NAME IS NULL
垢版 |
2017/07/01(土) 21:19:21.28ID:???
>>938
無知かどうかって質問に答えるとしたら何も知らない訳じゃないけど知らないことの方がずっと多いと思う
全知全能か?ってきかれたら明確に否定します
0941NAME IS NULL
垢版 |
2017/07/01(土) 21:22:51.78ID:6xOw4q9p
>>940
そもそも誰もお前の事を全知全能だなんて思ってないからw
何を怖れてるんだお前はw
0942NAME IS NULL
垢版 |
2017/07/01(土) 21:24:48.03ID:???
>>941
何も恐れていないよ

>>938
精神的に問題があると思うならそうなのかな
人に何かを言われてバカにされてると思う=自分でも自分のことをバカにしてる
ってことだと思うけどどうなんだろうね
0943NAME IS NULL
垢版 |
2017/07/01(土) 21:28:31.42ID:6xOw4q9p
>>942
つまりお前は無知でちっぽけな自分を怖れてるんだろ?
いやこれは疑問形だけど疑問ではない
そうなんだお前は
でもなあ…皆無知でちっぽけなんだぜ?
0944NAME IS NULL
垢版 |
2017/07/01(土) 21:30:23.28ID:???
>>943
恐れていてほしいという願望ですか?
0946NAME IS NULL
垢版 |
2017/07/01(土) 21:45:19.97ID:???
>>925
明確な理由もなしに人を嘘つき呼ばわりしてたらバカにされてもしょうがなくね?
0947NAME IS NULL
垢版 |
2017/07/01(土) 22:02:21.45ID:???
>>946
ちょっと背景がわからないけど、嘘つき呼ばわりされてるのが自分なら、自分が嘘をついていないのなら特に気にする必要がないと思う
他人が嘘つき呼ばわりされてたとしたら、その真偽はさておき、それはその人の課題であって、第三者がそれに対して何か言うものでもないとは思う
0948NAME IS NULL
垢版 |
2017/07/02(日) 00:22:29.79ID:???
人を嘘つき呼ばわりしてもいいと?
まあそう言う考え方もあるかもな
俺はそうは考えないだけだからいちいち絡んで来なくていいよ
0949NAME IS NULL
垢版 |
2017/07/02(日) 00:33:18.86ID:???
嘘つき呼ばわりしてる人がいたとしても、それが事実でなければただの独り言ですからね
0950NAME IS NULL
垢版 |
2017/07/02(日) 00:50:40.10ID:6+gWx0jl
>>948
お前が正しくない事を言っているのならば
お前の意思には関わらずお前は嘘をついている事になる
嘘つきとは厳然たる事実にすぎん
0951NAME IS NULL
垢版 |
2017/07/02(日) 00:55:06.61ID:???
論理的(=客観的に検証可能)な正しさと主観的な正しさなのかによって話は変わってきますね
0952NAME IS NULL
垢版 |
2017/07/02(日) 00:58:24.16ID:???
掲示板に書くのは独り言と言わない
チラシの裏にでも書いとけ
0953NAME IS NULL
垢版 |
2017/07/02(日) 00:58:28.26ID:6+gWx0jl
>>951
主観的な正しさなどというものは存在しない
それはお前の願望にすぎん
0954NAME IS NULL
垢版 |
2017/07/02(日) 00:58:29.98ID:???
まだマウンティング完了できないのw
なさけなーーーw
0955NAME IS NULL
垢版 |
2017/07/02(日) 01:05:52.12ID:???
>>953
実は正しさなど存在しないんですけどね
0956NAME IS NULL
垢版 |
2017/07/02(日) 01:07:03.35ID:???
>>950
で、何を言いたいの?
当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言うなら誰が嘘ついてるのかを根拠と共に書いてよ
0957NAME IS NULL
垢版 |
2017/07/02(日) 01:09:55.98ID:6+gWx0jl
>>955
お前は根っからの嘘つきだなw
0958NAME IS NULL
垢版 |
2017/07/02(日) 01:11:27.88ID:???
>>957
あなたがそう思うならあなたにとってはそうなんでしょうね
0959NAME IS NULL
垢版 |
2017/07/02(日) 01:11:39.59ID:6+gWx0jl
>>956
当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言ってないけど?w
お前は何を見てるんだ?気でも狂ったか?w
0960NAME IS NULL
垢版 |
2017/07/02(日) 01:12:24.95ID:6+gWx0jl
>>958
嘘つきとは厳然たる事実にすぎんw
0962NAME IS NULL
垢版 |
2017/07/02(日) 01:19:24.82ID:6+gWx0jl
>>961
そうかそれなら良かった

ところでお前が>>914なら言っておくが
俺はお前の事を嘘つきとは言ってないぞ
いや一度は言ったがw
前言撤回して正確に無知なだけだと認知しているからねw
0964NAME IS NULL
垢版 |
2017/07/02(日) 01:23:38.78ID:6+gWx0jl
>>963
そうか違ったかwすまんなw

じゃあ誰なんだよ無駄に俺に絡んできてるやつw
0965NAME IS NULL
垢版 |
2017/07/02(日) 01:25:03.55ID:???
SQLは本当に初心者でして、MySQL+PHPで自分用のプライベートなファイルアップローダーを作ったことくらいしかないレベルです
でもデータベースは面白いしWeb技術としては必須なので少しずつ勉強しており、このスレも時々のぞいております
0966NAME IS NULL
垢版 |
2017/07/02(日) 01:33:59.36ID:???
>>964
絡んでしまったのは私なんですけど、あなたが想定してる人ではないようです
ごめんなさいね
0967NAME IS NULL
垢版 |
2017/07/02(日) 01:50:27.58ID:???
>>959
> 当たり前のことを言って話をそらすとか低能がよくやる手じゃないと言ってないけど?w
日本語の理解も怪しい奴だったのか w
0969NAME IS NULL
垢版 |
2017/07/03(月) 15:27:30.66ID:???
>>964
> じゃあ誰なんだよ無駄に俺に絡んできてるやつw
心の声:もっと俺に絡め!
0970NAME IS NULL
垢版 |
2017/07/05(水) 21:11:11.11ID:4hstFHU6
質問ですが
sqlserverにDB1、DB2、〜DB10があり中にtableAとtableBがありカラムは同じだとします。

tableAにPC1とPC2から同時にinsert処理するとトランザクションが発生しますが
↓のパターンの処理の場合は問題はおこりますか?
問題ないならパターン2でいこうと思いますがパターン1がいいことってありますか?

パターン1
DB1.tableAにPC1からinsert処理、
DB2.tableAにPC2からinsert処理を同時にする

パターン2
DB1.tableAにPC1からinsert処理、
DB1.tableBにPC2からinsert処理を同時にする
0972NAME IS NULL
垢版 |
2017/07/05(水) 21:35:38.43ID:4hstFHU6
ありがとうございます。
パターン2で考えてみます。
0973NAME IS NULL
垢版 |
2017/07/05(水) 23:25:15.68ID:???
Left Outer Jonって複数一気に出来ない?
方法がわからないので、
(サブクエリ(サブクエリ(サブクエリ)))でやってるんだけど。
0974NAME IS NULL
垢版 |
2017/07/05(水) 23:36:50.79ID:Em7FNC1e
>>973
できるよ。構文上は外部結合した結果と結合するんだから、結合条件次第。
0975NAME IS NULL
垢版 |
2017/07/06(木) 03:50:49.70ID:???
(+)使えると便利だと思った
0976NAME IS NULL
垢版 |
2017/07/06(木) 20:39:29.54ID:7aA4qt+y
>>975
単にオラクル構文に慣れているだけでしょ。
0977NAME IS NULL
垢版 |
2017/07/07(金) 13:32:57.72ID:???
よろしくお願いします。
前任者が突然退職しました。
SQL初心者ですが業務を引く次ぐことになりました。
今、行き詰まってます。
次のようなテーブルが有ります。
table 出勤表(
社員番号 serial,
日付 date,
出勤時間 timestamp,
退勤時間 timestamp,
遅刻 boolean,
早退 boolean,
欠勤 boolean
)
ここである期間内の、例えば
where 日付 between '2017-05-01' and '2017-05-14'
内における社員それぞれの遅刻、早退、欠勤の【有無】を求めたいのです。
出力例)
社員番号 遅刻 早退 欠勤
10    F F T
11 F F F
12 T T F
のような。
色々試行錯誤していますが、まず、ある期間内に遅刻があったかどうか、というところからもう分かりません。
ヒントだけでもかまいません。
助けてください。
Postgresqlです。
0978NAME IS NULL
垢版 |
2017/07/07(金) 16:57:35.93ID:???
Postgresqlってboolean型にMAXとかMINとかとったらどうなる?

たとえば指定期間内の遅刻のMAXかMINとれば行けると思うけど
だめならCASEでTRUEのとき1、それ以外は0にしてSUMなりMAXなり取ればいけるんじゃね
0979NAME IS NULL
垢版 |
2017/07/07(金) 17:37:50.80ID:???
>>977
SELECT 社員番号,
SUM(CASE WHEN 遅刻 THEN 1 ELSE 0 END) > 0 as 遅刻,
SUM(CASE WHEN 早退 THEN 1 ELSE 0 END) > 0 as 早退,
SUM(CASE WHEN 欠勤 THEN 1 ELSE 0 END) > 0 as 欠勤
FROM 出勤表
WHERE 日付 BETWEEN '2017-05-01' AND '2017-05-14'
GROUP BY 社員番号
0980NAME IS NULL
垢版 |
2017/07/08(土) 01:20:39.94ID:???
スレ違いでしたら恐縮です。

アプリケーションサイズが一番小さい
データベースソフトウェアを教えてください。

何か記憶だと、インストール不要でちょっとづかいに使える様な
超ちいさい(アプリのサイズが)、データベースソフトがあった記憶があるのですが・・


宜しくお願いいたします。
0981NAME IS NULL
垢版 |
2017/07/08(土) 01:37:23.88ID:???
テキストファイルで、文字列検索すれば?
タダだし、簡単だぞ
0982NAME IS NULL
垢版 |
2017/07/08(土) 05:26:33.17ID:???
>>980
SQLiteはPHP5以降デフォルトでバンドルされています
0983NAME IS NULL
垢版 |
2017/07/08(土) 06:51:56.10ID:???
>>982
ありがとうございます。SQLiteで間違いありません。
0984NAME IS NULL
垢版 |
2017/07/08(土) 21:05:47.83ID:???
>>982
すみません。やっぱりSQLiteではありませんでした。
0988NAME IS NULL
垢版 |
2017/07/09(日) 09:59:14.11ID:???
>>987
いや御一行様じゃなくて>>985てめぇに対して言ってんだよ
0989NAME IS NULL
垢版 |
2017/07/09(日) 11:06:01.80ID:???
>>988
その返事だよ
その怒りのゴールは設定できてる?
0991NAME IS NULL
垢版 |
2017/07/09(日) 12:59:55.50ID:???
>>990
メンゴメンゴ
不快な日曜になったねW
0993NAME IS NULL
垢版 |
2017/07/09(日) 23:03:37.40ID:???
>>992
977 です。
bool_or() っていう関数、知りませんでした。
これで全く問題なく上手くできました♪
ありがとうございました。

※自分で書いた977が自分の環境(BathyScaphe)で読めません(泣)。なぜ?
0994NAME IS NULL
垢版 |
2017/07/12(水) 19:51:51.94ID:???
Left Outer Joinを複数回やる場合、
↓これで良いらしいですが、

Select G, H
From
 (C Left Outer Join D
  On E = F) Left Outer Join I
On J = K

今まで知らずに↓こうやって書いてました。

Select G, H
From
 (Select A, B
  From C Left Outer Join D
  On E = F) Left Outer Join I
On J = K

これだと遅い?
0996NAME IS NULL
垢版 |
2017/07/12(水) 20:00:12.99ID:???
>>995
答えられないなら黙っていてください。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 426日 15時間 16分 41秒
レス数が1000を超えています。これ以上書き込みはできません。

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