X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0811NAME IS NULL
垢版 |
2017/06/18(日) 22:37:12.92ID:???
お前らのまだ概念とアダ名で
ごちゃごちゃいってるのw
0812NAME IS NULL
垢版 |
2017/06/18(日) 22:37:36.39ID:???
サーバーはないよな…
ビール??
0813NAME IS NULL
垢版 |
2017/06/18(日) 22:38:08.71ID:???
>>811
ごちゃごちゃ言ってるのは一人のようだが
0814NAME IS NULL
垢版 |
2017/06/18(日) 22:38:51.07ID:???
>>808
サーバーwwwウケるwww
とか言えば満足かい?
0815NAME IS NULL
垢版 |
2017/06/18(日) 22:39:24.19ID:???
>>811
ほんじゃ超初心者に
SQL=SQLserverと指南し
その挙句場合によっては
SQLserverをサーバーと略すってそりゃやべーだろ
0816NAME IS NULL
垢版 |
2017/06/18(日) 22:41:14.55ID:c1GtVOfY
>>809
知るかよw
どう略すかなんてそいつの感性次第なんだからw
そこにやたら食いつくお前がどうかしてる
現実を受け入れろw
0818NAME IS NULL
垢版 |
2017/06/18(日) 22:45:50.84ID:???
>>817
こういうのが職場で話通じないやつの実態なんだって見せてもらった気分だよ
いるんだよ、どこまでも平行線なやつ
アイタタ…
0819NAME IS NULL
垢版 |
2017/06/18(日) 22:47:32.40ID:c1GtVOfY
>>817
つまりお前は他人の感性がおかしく感じるから
自分の感性に合わせろと言いたいのか?
無理だろそんなもんw
てかよくそんな無駄な事にここまで労力使えるなお前w
0823NAME IS NULL
垢版 |
2017/06/18(日) 22:52:40.86ID:???
>>819
あんね、オレは817じゃないけど
感性感性ってさ、一応言語で確認する訳なんで通じなかったら意味ないのよ、って
なんでこんな小学生でもわかること説明してんだおいっ
ここはひまわり学級かっ

だったらあんたいきなりエマニュエルの件だけど、って言われてわかるか?
0824NAME IS NULL
垢版 |
2017/06/18(日) 22:54:04.25ID:c1GtVOfY
色んなやつが居ることを認める事をどうしてここまで悔しがる必要があるのかw
おもしれー奴だなコイツw
0825NAME IS NULL
垢版 |
2017/06/18(日) 22:54:06.07ID:???
昼間その呼び方で混乱してた初心者
明日会社で恥かくぞ…
0826NAME IS NULL
垢版 |
2017/06/18(日) 22:54:41.92ID:???
>>824
だからわかんのか答えてみて
エマニュエルの件
0827NAME IS NULL
垢版 |
2017/06/18(日) 22:55:28.56ID:???
言い方に幅があるからこそ最大公約数で確認してくんだろうが、まったく…
0829NAME IS NULL
垢版 |
2017/06/18(日) 23:04:32.75ID:???
>色んなやつが居ることを認める事をどうしてここまで悔しがる必要があるのかw

そういうのは共通の言葉が通じた上での話。
あんたはそれ以前
0830NAME IS NULL
垢版 |
2017/06/18(日) 23:08:48.34ID:???
これじゃわかんないのが人の感性なんだよ
ドナルドって言われたらどこに思考がいく?
マクドナルドか?トランプか?
今なら一瞬考えてトランプだよな
オバマって言われたら一発でわかるよな
だから今はエマニュエルならマクロンなんだよ

おまえさんの言ってんのはその前振りが無い状態で、いきなりエマニュエルの件って言って周りが理解してくれないのを責められて、
んだよっ、マクロンて言えよと突っ込まれても、感性の違いだ、と言い張ってるのと同じなんだよ
0832NAME IS NULL
垢版 |
2017/06/18(日) 23:13:24.00ID:???
>>831
山田くーん、座布団いちまいあげてー

あー、やっぱり持ってっちゃいなさい
0833NAME IS NULL
垢版 |
2017/06/19(月) 00:25:57.12ID:???
すくなくともこのスレやSQL質疑応答スレで、SQL ServerをSQLと略すような奴の話は
まともに聞いちゃ駄目

感性がまともかどうかは置いとくが
その略しかたでは話が通りにくくなる事が理解できないやつなのは確かだから
0834NAME IS NULL
垢版 |
2017/06/19(月) 05:38:45.15ID:???
教えて下さい
postgesql 9.3を使っています。

テーブルに
year
month
day
type
data
というカラムが設定されています。

select data from テーブル where year=2017 and month=1 and day=1 and type='a';
select data from テーブル where year=2017 and month=1 and day=1 and type='b';

これを1つの命令で type='a'の時のdata と 'b'の時のdata をまとめて出力したいのですが
どうしたらいいでしょうか?

select type=aのdata , type=bのdata from テーブル where ...

という感じの命令にしたいです
unionというものが使えそうだと思ったのですが、どちらがtype=aのものか判別の仕方がわからなかったです。
0835NAME IS NULL
垢版 |
2017/06/19(月) 06:00:35.80ID:???
select type, data from テーブル where year=2017 and month=1 and day=1 and (type='a' or type ='b');
じゃダメなのか?
0836NAME IS NULL
垢版 |
2017/06/19(月) 06:07:09.26ID:yMVixfUz
>>833
そう思うだろ?ところがまともな回答してんも俺だけなんだよなあ
0837NAME IS NULL
垢版 |
2017/06/19(月) 06:20:33.21ID:???
>>836
このひと つくづくダメな人みたい
0838NAME IS NULL
垢版 |
2017/06/19(月) 06:37:08.99ID:gwyUxO6k
>>834
なんのためのSQLなのか言ってくれ。
0839NAME IS NULL
垢版 |
2017/06/19(月) 07:51:05.01ID:yMVixfUz
>>837
俺をダメ認定するのはお前の勝手だけどそれでお前の能力が上がるわけでもないぞ?
むしろ自己満足のために周囲の評価は下がる方向だけどいいんかそれで?w
0840834
垢版 |
2017/06/19(月) 08:03:49.33ID:???
>>835
返信ありがとうございます。
type a と type b で同一の年月日で別の data を持つ為、それを同時に出したいのです。
ですので、それではダメでした。

>>838
カレンダー表示させる為のSQLです。
日毎にtype a の data と type b の data を表にしたいのですが、
できれば年月日を一回のループで終わらせたいのです。
0841NAME IS NULL
垢版 |
2017/06/19(月) 08:38:40.84ID:???
今時年月日を別々に持つとか釣りなんだろうか?
0842834
垢版 |
2017/06/19(月) 09:27:16.58ID:???
ごめんなさい。自己解決しました

select t1.data , ( select t2.data from テーブル as t2 where year = 2017 and month = 1 and day = 1 and type = 'b' )
from テーブル as t1 where year = 2017 and month = 1 and day = 1 and type = 'a'

でいけました
もっと簡単に書けるかもしれませんが、一旦これで済ませます
助言ありがとうございました
0845NAME IS NULL
垢版 |
2017/06/19(月) 15:19:31.45ID:???
>>834
SELECT year, month, day,
MAX(CASE WHEN type = 'a' THEN data END) as data_a,
MAX(CASE WHEN type = 'b' THEN data END) as data_b
FROM foo
GROUP BY year, month, day
0846NAME IS NULL
垢版 |
2017/06/19(月) 15:34:11.98ID:???
fromの段階で2017年1月1日までは絞り込んじゃいかんの?
あとはCASE式でわければいいし
0847NAME IS NULL
垢版 |
2017/06/19(月) 15:45:36.77ID:???
>>846
クエリ1回で1ヶ月分だかの範囲取得したいんじゃないの?
しらんけど
0848NAME IS NULL
垢版 |
2017/06/19(月) 15:53:00.40ID:46JrC3Lz
>>842
ちょっと悪い書き方だな。

だいたいSELECT句でtype列を選択してはいけない理由は何なのか?
0849NAME IS NULL
垢版 |
2017/06/19(月) 20:47:59.39ID:RxgVhLV5
>>848
ちょっとぐらい気にすんな
0850NAME IS NULL
垢版 |
2017/06/19(月) 22:29:58.77ID:gwyUxO6k
>>849
これがプログラムが大騒ぎだけどなw
0851NAME IS NULL
垢版 |
2017/06/20(火) 10:44:06.99ID:???
>>839
自分の客観的な評価を知ることができたとは思わないんだろうか
0852NAME IS NULL
垢版 |
2017/06/20(火) 12:21:59.67ID:9TTafpCL
>>851
思うわけないだろお前ら相手にw
0853NAME IS NULL
垢版 |
2017/06/21(水) 08:12:52.82ID:???
PostgresSQLについて質問です
hogeテーブルに日時を2017-06-21 20:08:45のような形で保存しているdatetimeフィールドがあるとして、
「datetimeが現在日時から120分以内の行を抜き出す」場合にはWHERE節に何と書けばいいのでしょうか?
0854NAME IS NULL
垢版 |
2017/06/21(水) 10:51:11.21ID:???
>>853
where col between now() and now() + '120 minutes'
0858NAME IS NULL
垢版 |
2017/06/21(水) 12:36:08.67ID:???
すみません、言葉足らずでした
datetime列はそのときの現在時刻を入れていく列です
>>854のようにnowを使ってやってみます
ありがとうございました
0859NAME IS NULL
垢版 |
2017/06/21(水) 12:49:24.44ID:???
>>857
そこは解釈の問題
なので要件を確認した方がいいな
0860NAME IS NULL
垢版 |
2017/06/21(水) 13:46:55.07ID:???
そのときの現在時刻を入れていく列ってことらしいから
未来時間は入らないだろうなあ
0861NAME IS NULL
垢版 |
2017/06/21(水) 14:08:08.61ID:???
now() - interval '120 minutes'
と、intervalを明示しといた方がいい気がする
0862NAME IS NULL
垢版 |
2017/06/25(日) 14:21:19.85ID:???
テーブルとして
Hoge:カラム HogeId,Name
Tag:カラム TagId、Name
TagRelation:カラム Id、HogeId、TagId
のようなものがあっって要はHogeにTagをTagRelationを関連付けているとして、
TagとしてId=1、2、3のものがあったとしてその3つのTag全てへの関連を持つHogeを列挙したいとしたらSQL一発でできますか?
TagRelationでは同じHogeとTagへの関係が重複してあり得るものとします。
distinct,group by,count辺り使えばいけるのかな?
0864NAME IS NULL
垢版 |
2017/06/25(日) 15:13:21.38ID:???
おお、あざす。ああHaving句とか知らんかった。
SQLiteでdistinct絡めたものがなんかコンパイルエラーになるけれど大筋は分かったのでいろいろ試してみる。ありー
0865NAME IS NULL
垢版 |
2017/06/25(日) 15:36:24.70ID:???
成果物おいときますね
セレクト ItemCommon.Id,ItemCommon.DisplayName
from (セレクトdistinct TagRelation.ItemId as itemId,TagRelation.TagId as tagId from TagRelation
where TagRelation.TagId in (
'eea01c2b-e0f8-418e-a942-d4e1f43e71f9',
'6668707d-ab6e-4e48-837d-b45ae3954360'
))
inner join itemCommon on itemId=ItemCommon.Id
group by ItemCommon.Id having count(*)=2
order by ItemCommon.Id
0866NAME IS NULL
垢版 |
2017/06/25(日) 15:36:55.16ID:???
なんかはじかれるのでカタカナに置き換えた
0867NAME IS NULL
垢版 |
2017/06/25(日) 17:05:25.05ID:???
SQL文を弾いてしまうの、どうにかならないものかな・・
中継クラウドがやっているようだ
0868NAME IS NULL
垢版 |
2017/06/25(日) 19:54:01.18ID:???
SQLインジェクション対策ってやつですか?
0869NAME IS NULL
垢版 |
2017/06/26(月) 12:13:47.67ID:???
あまり話題にならないのは、レスでSQL文を書く用事があるのはこの板くらいだからかw
0870NAME IS NULL
垢版 |
2017/06/26(月) 23:49:45.91ID:???
作業テーブル
ID、作業番号...
作業詳細テーブル
ID、作業ID、作業開始時間、作業終了時間...
作業明細テーブル(作業詳細テーブル 1-多 作業明細テーブル)
ID、作業詳細ID、作業内容、宿泊費...

うろ覚えですがこんな感じのテーブルがありまして、作業内容にhogehogeもしくはnullnullという言う文字列が入っている作業番号を知りたいまたは入っていない作業番号を知りたいのですが
試行錯誤しながら副問い合わせを使ってもできません。以下の感じになりました

// hogehogeもしくはnullnullが入っている作業番号
SELECT 作業番号
FROM 作業テーブル INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
WHERE 作業詳細テーブル.ID IN
(SELECT 作業詳細ID
FROM 作業明細テーブル
WHERE 作業内容 LIKE '%hogehoge%' OR 作業内容 LIKE '%nullnull%')

// hogehogeもしくはnullnullが入っていない作業番号
SELECT 作業番号
FROM 作業テーブル INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
WHERE 作業詳細テーブル.ID IN
(SELECT 作業詳細ID
FROM 作業明細テーブル
WHERE 作業内容 NOT LIKE '%hogehoge%' OR 作業内容 NOT LIKE '%nullnull%')

どうすれば特定の文字列が入っている作業番号を抜き出すことができるでしょうか?教えてください
0871NAME IS NULL
垢版 |
2017/06/27(火) 00:39:00.94ID:???
>>870
なんかおかしな結合条件になってるけどそれぞれのテーブルはIDで紐づけてるわけじゃないの?
0872NAME IS NULL
垢版 |
2017/06/27(火) 01:01:05.65ID:???
hogehogeもしくはnullnullが入っていない作業番号

ORじゃなく、ANDじゃ?と思った
0873NAME IS NULL
垢版 |
2017/06/27(火) 12:25:38.48ID:???
>>871
2番目以降、名前IDで紐付けしています

>>872
やっぱりそうですかね?
0874NAME IS NULL
垢版 |
2017/06/27(火) 23:00:43.16ID:???
誰かレスお願いします
0875NAME IS NULL
垢版 |
2017/06/27(火) 23:10:56.24ID:X5GsG9b9
では私が
0877NAME IS NULL
垢版 |
2017/06/27(火) 23:35:37.58ID:???
>>870
速度考えなきゃ
-- hogehogeもしくはnullnullが入っている作業番号
SELECT 作業テーブル.作業番号 AS 作業番号
FROM 作業テーブル
INNER JOIN 作業詳細テーブル ON 作業テーブル.ID = 作業詳細テーブル.作業ID
INNER JOIN 作業明細テーブル ON 作業明細テーブル.作業詳細ID = 作業詳細テーブル.ID
WHERE 作業詳細テーブル.作業内容 LIKE '%hogehoge%' OR 作業詳細テーブル. 作業内容 LIKE '%nullnull%'
GROUP BY 作業テーブル.作業番号
で行けるんじゃね?
入ってない方は
SELECT 作業番号 FROM 作業テーブル
EXCEPT
SELECT 以下同文
でいいんじゃね?
0878NAME IS NULL
垢版 |
2017/06/27(火) 23:35:58.50ID:LiLTLORO
>>874
素直にFROM句で3つのテーブルを結合しろよ。
0879NAME IS NULL
垢版 |
2017/06/27(火) 23:37:14.32ID:LiLTLORO
>>877
性能といいながら、そんなにコストの高いSQLを勧めるなよw
0880NAME IS NULL
垢版 |
2017/06/27(火) 23:49:04.72ID:???
「ないものはない!」みたく、曖昧な表現だな

「速度を考えないで良いなら」と言いたいのでは?
0881NAME IS NULL
垢版 |
2017/06/28(水) 00:51:16.52ID:???
こんなんでどうだろうか
SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
(作業明細テーブル.作業内容 LIKE '%hogehoge%' OR
作業明細テーブル.作業内容 LIKE '%nullnull%');

SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
(作業明細テーブル.作業内容 NOT LIKE '%hogehoge%' AND
作業明細テーブル.作業内容 NOT LIKE '%nullnull%');
0882NAME IS NULL
垢版 |
2017/06/28(水) 07:18:31.22ID:???
>>879
ほっといてやれよ
僕が考えた最強のSQLなんだから
0883NAME IS NULL
垢版 |
2017/06/28(水) 09:04:03.37ID:???
>>879
落ち着け
速度考慮してないだろ
0884NAME IS NULL
垢版 |
2017/06/28(水) 12:09:10.98ID:???
>速度考えなきゃ
速度も考慮しなくては
速度を考えなくてもいいなら

どっちにも取れるw
0885NAME IS NULL
垢版 |
2017/06/28(水) 12:29:10.32ID:wyt1L1ut
これはガチに国語力低いパターン
0887NAME IS NULL
垢版 |
2017/06/28(水) 15:27:24.56ID:sraozQ1L
文章にSQLを埋め込む高等テクニックだからな。
0888NAME IS NULL
垢版 |
2017/06/28(水) 22:55:46.36ID:???
>>881
作業内容にhogehogeもしくはnullnullを含むは検索できましたが逆ができません
いろいろ試行錯誤していても取り出せません
上記にも書いてあるんですが、作業詳細テーブルのレコード1つ対し作業明細テーブルのレコードが複数結びついているのでまたややこしくなっているんだと思います
0889NAME IS NULL
垢版 |
2017/06/28(水) 23:08:25.76ID:???
>>888
その作業番号に紐付く作業明細テーブルの作業内容に
hogehogeもしくはnullnullを含まないものがあれば抽出したいのか、
その作業番号に紐付く作業明細テーブルの作業内容に
hogehogeもしくはnullnullが含まない作業番号を抽出したいのか
どちらだろうか?

後者なら、前者でhogehogeもしくはnullnullを含む作業番号を抽出出来ているのだから、
その作業番号以外の作業番号を求めればいいのでは?
0890NAME IS NULL
垢版 |
2017/06/28(水) 23:09:47.86ID:???
「前者」は、質問内容の前者ということです
0891NAME IS NULL
垢版 |
2017/06/29(木) 06:19:07.20ID:???
>>889
後者です
論理演算的にNOT ORを使えばいいのでしょうか?

SELECT distinct 作業番号
FROM 作業テーブル,作業詳細テーブル,作業明細テーブル
WHERE
作業テーブル.ID = 作業詳細テーブル.作業ID AND
作業詳細テーブル.ID = 作業明細テーブル.作業詳細ID AND
NOT (作業明細テーブル.作業内容 LIKE '%hogehoge%' OR
作業明細テーブル.作業内容 LIKE '%nullnull%')

こんな感じですか?
0892NAME IS NULL
垢版 |
2017/06/29(木) 06:47:56.55ID:???
速度考えなきゃ○○でいいんじゃね?

これ読んで速度考えたさいきょうの○○と思う>>879とか>>882の国語力 w
0893NAME IS NULL
垢版 |
2017/06/29(木) 06:51:50.11ID:???
>>891
> 後者です

>> 入ってない方は
>> SELECT 作業番号 FROM 作業テーブル
>> EXCEPT
>> SELECT 以下同文
>> でいいんじゃね?
0894NAME IS NULL
垢版 |
2017/06/29(木) 11:40:49.11ID:???
>>892
>速度考えなきゃ
で改行入ってるから、そこで文章が切れてると判断するかつながってると判断するか
その材料がないだろ、キミの国語力も怪しいw
0895NAME IS NULL
垢版 |
2017/06/29(木) 11:57:28.67ID:???
お前らまさか
件のsql見て処理速度分からないの?

じゃなきゃ文頭一行に
異様にこだわる理由はそれかよw
0896NAME IS NULL
垢版 |
2017/06/29(木) 12:19:13.07ID:IG0jLtOQ
>>894←馬鹿の思考の真髄w
0897NAME IS NULL
垢版 |
2017/06/29(木) 12:26:26.48ID:???
>>893
できませんでした
質問する場所を変えるので取り下げます
0899NAME IS NULL
垢版 |
2017/06/29(木) 18:31:17.30ID:???
>じゃなきゃ
じゃも考慮しなくては
じゃを考えなくてもいいなら

どっちにも取れるw
0900NAME IS NULL
垢版 |
2017/06/29(木) 19:39:43.68ID:???
国語力をバカにされたのがそんなに悔しかったのかよ
0901NAME IS NULL
垢版 |
2017/06/29(木) 20:14:01.27ID:s5zXJTLS
そりゃ悔しいだろうよw自分じゃ頭いいと思ってるんだからなw馬鹿すぎるwwww
0902NAME IS NULL
垢版 |
2017/06/29(木) 20:33:08.93ID:???
>>899
はしゃいでるなー









イミワカラン
0903NAME IS NULL
垢版 |
2017/06/29(木) 21:06:45.71ID:???
IPAの試験は半分国語の問題だからな。こういうのも意外と大事よ。
0904NAME IS NULL
垢版 |
2017/06/30(金) 00:24:15.44ID:qR8XYDhd
質問ですが
table点数
名前  年月日  点数 
花道 2017/10/1 20
赤木 2017/10/1 80
三井 2017/10/1 20
花道 2017/10/5 10
赤木 2017/10/5 100
三井 2017/10/5 40
花道 2017/10/10 0


table成績
名前 評価 最終評価年月 
花道 E 2017/9/1
赤木 A 2017/10/5
三井 C 2017/9/1


↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価


テスト回数は、table点数にある名前の回数で
対象データはtable点数の年月日が table成績の最終評価年月日に設定されている日以降
ランキングはテスト回数から番号を作成
平均点はtable点数の点数の平均

最終評価年月によってテスト回数をだすのがよくわからないのでだれかアドバイスお願いします。
0905NAME IS NULL
垢版 |
2017/06/30(金) 00:26:38.02ID:qR8XYDhd
>>904
sqlserverでやりたいです。
0906NAME IS NULL
垢版 |
2017/06/30(金) 07:35:02.97ID:???
>>904
> ランキングはテスト回数から番号を作成
テスト回数のランキングってこと?
ならこんな感じかな
create view View904 as (
select
rank() over (order by count(*) asc) as ランキング,
成績.名前 as 名前,
count(*) as テスト回数,
avg(点数.点数) as 平均点,
成績.評価 as 評価
from 成績
left join 点数 on 成績.名前 = 点数.名前
where 成績.最終評価年月 < 点数.年月日
group by 成績.名前, 成績.評価
)
group by と rank() は同時に使ったことないからもしかしてそこでエラーになるかも
その時はサブクエリにして改めて rank() を適用してちょ
0907NAME IS NULL
垢版 |
2017/06/30(金) 10:38:04.24ID:???
>>904
まずは、
・ランキング
・テスト回数
・平均点
・評価
を、自分でそれぞれ別のクエリで書いてみて、わからない奴だけ質問してくれ
0908NAME IS NULL
垢版 |
2017/06/30(金) 12:18:20.40ID:TPE85msy
>>907
わからんなら絡むなって
0909NAME IS NULL
垢版 |
2017/06/30(金) 12:22:22.27ID:???
↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価

↑この下に、どういう結果を期待しているのか、書いてみて
レス数が900を超えています。1000を超えると表示できなくなるよ。

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