X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0002NAME IS NULL
垢版 |
2016/05/14(土) 12:04:11.91ID:???
2get
teradataの識者いる?
0003NAME IS NULL
垢版 |
2016/05/26(木) 15:09:21.05ID:???
スレなかったっけ、、、と探したら無いな、、落ちたんかな
0004NAME IS NULL
垢版 |
2016/06/18(土) 19:48:26.11ID:wQWiAJ0q
外部の利用者が自由にテーブルを追加できるシステムを sqlite で検討しています。
テーブルが重複しないように利用者番号をテーブル名のプレフィックスにつけようと思います。

もしも、同じようなシーンでの一般的な方法などありましたら教えてください。
よろしくお願いします。
0006NAME IS NULL
垢版 |
2016/06/18(土) 22:19:58.66ID:???
>外部の利用者が自由にテーブルを追加できるシステム
が一般的な使い方とは思えないのに一般的な方法とか...
0007NAME IS NULL
垢版 |
2016/06/19(日) 04:42:21.27ID:???
>dbはどう?
この意味がよくわかりません。すみません。

利用者ごとにというのは、少し誤りでした。
正確にはプラグインとして db を操作するモジュールを追加できる仕組みです。
そのモジュールから db に対して create table もできるようにしたいです。
そのときにテーブルの名前の重複を避けたいので、質問させていただきました。
0008NAME IS NULL
垢版 |
2016/06/19(日) 09:41:12.88ID:???
sql というよりはそのモジュールの運用方法の話のようだな
0009NAME IS NULL
垢版 |
2016/06/19(日) 10:24:19.80ID:???
無謀な気が
ユーザーごとにDB分けちゃダメなん?
0010NAME IS NULL
垢版 |
2016/06/19(日) 11:22:35.41ID:???
1つのファイルのほうがユーザが使いやすいかと思っています。

もしかしたら sql という枠組みで話す質問ではないのかもしれません。
sql は初心者なので、動的テーブル名などを調べたのですが何か違う気がしました。
sql は歴史もあるし、自分の考えている程度のことはすでに枠組みができているのかと思い質問しました。

sql の枠組みですんなり当てはまるものがないとわかっただけで前進です。
ありがとうございました。
0011NAME IS NULL
垢版 |
2016/06/19(日) 11:31:36.67ID:???
DBの世界でデータをストアすると言いますが、
では読み出す場合は何て言うのでしょうか?
0012NAME IS NULL
垢版 |
2016/06/19(日) 11:35:49.20ID:???
>>9
1つのファイルにこだわりすぎていたかもしれません。
DB を分ける案を検討しようと思います。
ありがとうございました。
0013NAME IS NULL
垢版 |
2016/06/19(日) 11:58:16.35ID:???
>>12
5にも礼を言っとけ。
全く同じこと先に言ってる
0014NAME IS NULL
垢版 |
2016/06/19(日) 13:52:20.11ID:???
>>13
そういう意味だったんですね

>>5
ありがとうございました。
0015NAME IS NULL
垢版 |
2016/06/21(火) 16:53:37.04ID:???
一旦作ったテーブルを長期間使うのではなく、一日にテーブルのcreateやdropを何十回も繰り返すような使い方は特に問題有りませんか?
0018NAME IS NULL
垢版 |
2016/07/09(土) 17:51:20.85ID:uRuLwqJe
取得した順番に数値をインクリメントして表示したいのですが、どういった文法をすればいいですか?
シーケンスとかそういうことではなく、

select
user,num
from
user

みたいなsqlで
userA 1
userB 2
userC 3

のようにnumに取得した順番に数値をインクリメントしたいです。
0019NAME IS NULL
垢版 |
2016/07/09(土) 17:59:50.73ID:uRuLwqJe
set @i:=0;
select @i:=@i+1 as rownum,user_id from user;

こういう書き方で自己解決しました。
0020NAME IS NULL
垢版 |
2016/07/21(木) 20:04:08.07ID:W6OLWaxQ
質問するときはRDBの名前くらいは書きましょう。
0021NAME IS NULL
垢版 |
2016/08/07(日) 07:38:31.22ID:???
mysql 5.6.20 です

daily_tblからcode毎の最新入力日付を得るのに
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
order by code;
で出せたんですが、
今度はその日付が指定の日付でないもののみを出そうとして
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
where max(inout_date) != '2016-08-05'
group by code
order by code;
とすると、Invalid use of group function ってエラーで出来ません。コード毎の最新入力日付が指定の日付でないもののみを
出すようにするにはどうすればいいのでしょうか
0022NAME IS NULL
垢版 |
2016/08/07(日) 10:36:30.57ID:???
inputなのかinputなのか気になるが、、、
having by 使うケースかなこれ?
0023NAME IS NULL
垢版 |
2016/08/07(日) 10:37:21.81ID:???
おっとgroup by の文字省いた時にby残しちゃったhaving ね
002421
垢版 |
2016/08/07(日) 16:10:17.24ID:???
あぁinoutになってるw inputです
002521
垢版 |
2016/08/07(日) 16:17:17.84ID:???
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
having max(input_date) != '2016-08-05'
order by code;

で出てきました。実際に使う時に全然havingなんて思いつきもしなかったです^^;
0027NAME IS NULL
垢版 |
2016/08/07(日) 16:59:37.21ID:mqpBG9Ui
>>25
テーブル修飾があったり、なかったりしているところがちょっと気持ち悪い。
002825
垢版 |
2016/08/07(日) 18:45:08.20ID:???
この場合、codeについては付けないと ambiguous 曖昧と言って怒られてしまうんですが、全部にどちらのテーブルのものなのか
はっきりさせておけってことですか?
003025
垢版 |
2016/08/07(日) 20:34:00.34ID:???
努力します^^;
0031NAME IS NULL
垢版 |
2016/08/07(日) 20:46:40.28ID:mqpBG9Ui
この例の場合、同じカラムがあるなら、FROM句の最初にあるテーブルのテーブル別名aで修飾するのが一般的。

他人がこのSQLだけを見たとき、この書き方だとどちらのテーブルのカラムか分からない。
0032NAME IS NULL
垢版 |
2016/08/21(日) 09:41:45.55ID:???
mysql5.7を使用しています
ユーザーのゲーム内マネーをwalletテーブルで管理していて
新たにユーザーの最大マネー記録の管理が必要になったので
recordテーブルを新たに作ることにしました

walletテーブル: id, user_id, gold
recordテーブル: id, user_id, max_gold

質問なのですが、walletテーブルのgoldから
recordテーブルのmax_goldを全ユーザー分一括で更新するにはどうしたらいいでしょうか
よろしくお願いします
0033NAME IS NULL
垢版 |
2016/08/21(日) 14:33:49.32ID:???
recordには全idすでにある前提?

UPDATE record
SET max_gold = (SELECT MAX(gold) FROM wallet
WHERE record.user_id = wallet.user_id);

とかは?
003432
垢版 |
2016/08/22(月) 01:44:39.00ID:???
>>33
レスありがとうございます
説明が不足していてすみません
userテーブルとwalletテーブルは1対1になっています
userテーブルとrecordテーブルも1対1です
全user分のwalletとrecordが存在します
walletテーブルのgoldは増減します
recordテーブルのmax_goldは過去最高goldです
あるタイミングで複数walletに一斉にgoldがプラスされます
そのときにwalletのgoldがrecordのmax_goldより大きければmax_goldを更新したいです
自分なりに調べてupdateとjoinを使うのだろうということはわかりましたがSQLを書けずにいます
教えていただけると嬉しいです
よろしくお願いします
0035NAME IS NULL
垢版 |
2016/08/22(月) 01:49:54.86ID:nVybO4PH
>>34
まずはひとつずつ考えて。

段階的に考えていかないと。
0036NAME IS NULL
垢版 |
2016/08/22(月) 04:14:30.36ID:???
別にその条件でも>>33でいけるだろ
0037NAME IS NULL
垢版 |
2016/08/22(月) 04:17:24.95ID:???
あー元がmaxより小さいケースがあんのか、でもl条件一つ追加するだけだよな
003832
垢版 |
2016/08/22(月) 10:24:05.45ID:???
自己解決できたみたいです

update record
left join wallet on record.user_id = wallet.user_id
set record.max_gold = if(wallet.gold > record.max_gold, wallet.gold, record.max_gold)
where record.user_id = wallet.user_id;

これでやりたいことはできたと思います
ありがとうございました
0039NAME IS NULL
垢版 |
2016/08/22(月) 10:41:57.37ID:???
ちょっと見ただけですけど
recordテーブルを追加するのではなく、
walletテーブルに max_goldという項目を追加すれば良いのでは?
0040NAME IS NULL
垢版 |
2016/08/22(月) 10:57:44.22ID:???
user_idごとに1件しか無いのにidが別にあることとかいろいろ気になるけど
まあなんか書いてない理由があるんだろう、、、

どうしても最新状態保つなら単にトリガ書くだけのが早そうだが
0041NAME IS NULL
垢版 |
2016/08/22(月) 13:08:23.88ID:nVybO4PH
>>38
正直に言ってくそSQLだわ。

他人があとでみたら、こいつ殺すと思われるレベル。
0042NAME IS NULL
垢版 |
2016/08/22(月) 13:40:23.90ID:???
初心者スレなんだからぼろくそに言うのではなく改善案を提示しないと
0043NAME IS NULL
垢版 |
2016/08/22(月) 13:59:03.07ID:???
これは更新が1回でも失敗したらもう最大値が出せなくなるじゃん
0044NAME IS NULL
垢版 |
2016/08/22(月) 18:58:47.51ID:???
>>34
walletに時系列データはないのか?
ないと実現出来ないのではないか?
004532
垢版 |
2016/08/22(月) 20:10:31.73ID:???
だめなSQLのようですね
どこが悪いのかがわからないのでどう改善していいのかもわかりません
具体的に指摘してもらえると助かります
SQL難しいですね

>>39
recordにはユーザーの最大ゴールド以外にもいろいろな記録を持たせようと思っています

>>44
時系列データはありません
0046NAME IS NULL
垢版 |
2016/08/22(月) 22:48:38.43ID:???
開始の残高ファイルと更新データがあれば累計関数使って累計残高viewを作ってその最大値で更新したほうがいいと思う
mysqlでは下記リンク先参照
http://pct.unifas.net/mysql/3712
0047NAME IS NULL
垢版 |
2016/08/22(月) 23:24:46.87ID:nVybO4PH
>>45
疑問なのは、UPDATE文ひとつでやらないと本当にいけないの?

こういう状況がわからない。
0048NAME IS NULL
垢版 |
2016/08/23(火) 03:22:31.82ID:???
>>38のSQLでは、実行時のwalletの値が最大値だったときしか更新されないぞ
履歴保持してないのに全ユーザ一括は無理(全ユーザのwallet更新タイミングが同じでない限り)

walletが時系列や履歴を持たずに、現在値しか保持してないなら
walletの更新時にrecordを更新しないとダメ

で、普通のDBMSなら、こういうのはwalletにトリガ張ってやる
walletを更新するストアドプロシジャ作ってそれでチェックするって方法もあるけど
004932
垢版 |
2016/08/23(火) 12:32:35.01ID:???
>>47
どういうサイトなのかを説明すべきでしたすみません
ざっくり言うと競馬のようなサイトをやっています
レース終了後に払い戻しとして的中した全ユーザーのwalletのgoldを
ユーザーが賭けた額×オッズ分プラスします
この払い戻しのタイミングでmax_goldを更新したいと思い>>38のようなSQLを考えました
goldが増えるタイミングは払い戻し時のみです

>>48
トリガ、ストアドプロシジャを初めて知りました
調べてみようと思います。ありがとうございます
0050NAME IS NULL
垢版 |
2016/08/23(火) 12:41:04.01ID:???
>>40 でトリガって書いてるのになw
0051NAME IS NULL
垢版 |
2016/08/23(火) 12:42:04.90ID:???
どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
SQL以前にDB設計じゃねえの
0052NAME IS NULL
垢版 |
2016/08/23(火) 12:55:29.40ID:???
>>51
> どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
と思ってるような奴の方が使い物になるとは思えんな
005332
垢版 |
2016/08/23(火) 13:06:07.75ID:???
データベースの勉強をおろそかにしてORMに頼ってたツケが回って来た感があります
データベースについて基本からしっかり勉強し直したいのですが
おすすめの本やサイトを教えていただけないでしょうか
0054NAME IS NULL
垢版 |
2016/08/23(火) 14:43:56.01ID:???
>>53
amazonでデータベースで検索し、設計関連の評判の良いものを5冊買え
0055NAME IS NULL
垢版 |
2016/09/01(木) 16:46:33.47ID:???
SQLっていうか、DBそのものに関する質問になってしまうんですが。。。

データベースに同じUserID、同じパスワードで複数ログイン出来るってのは一旦資格を与えられたユーザーに
ついてはその権限の範囲なら信用するってことなんですかね。
0056NAME IS NULL
垢版 |
2016/09/01(木) 17:48:15.50ID:???
1ユーザ1コネクションの制限を設けたとしたら、マルチプロセスやマルチスレッドなクライアントが任意のタイミングでコネクションを生成するのに苦労するよ。
005755
垢版 |
2016/09/01(木) 18:40:00.10ID:???
そちらの方のプログラミングには疎いんですが、とにかくそういう制限があるとまずいってわけなんですね。^^;
例えば一般ユーザーに開放しているデータベースがあるとして、そこにアクセスするユーザーにいちいちidとパスワード、権限を
与えるのも大変だなとは思ったんですが。
0058NAME IS NULL
垢版 |
2016/09/01(木) 19:02:23.73ID:???
何に関しては疎くないの?
0061NAME IS NULL
垢版 |
2016/09/01(木) 22:57:57.54ID:???
>>57
なんかいろいろ勘違いしてる
0062NAME IS NULL
垢版 |
2016/09/02(金) 02:24:24.57ID:RT8+OUHE
>>57
RDBMSでもOSでも1ユーザー、1セッションというものの方が珍しい。
0063NAME IS NULL
垢版 |
2016/09/02(金) 02:39:07.81ID:???
まあRDBMSによって「ユーザー」というものの定義は異なるけどな
0064NAME IS NULL
垢版 |
2016/09/04(日) 21:42:59.71ID:???
トランザクションとかの話?
0065NAME IS NULL
垢版 |
2016/09/04(日) 21:58:50.03ID:???
ユーザ用(id,パスワード)のテーブルがあった方がいいと思うけど
0066NAME IS NULL
垢版 |
2016/09/04(日) 22:33:29.15ID:???
>>57
>例えば一般ユーザーに開放しているデータベースがあるとして、
>そこにアクセスするユーザーにいちいちidとパスワード、権限を
>与えるのも大変だなとは思ったんですが。

一般ユーザーに直接データベースを操作させることは普通しないと思う。

そうではなく、データベースを利用するシステムが、利用ユーザーに提供する
業務用アカウントの話じゃないのかな?
0067NAME IS NULL
垢版 |
2016/09/04(日) 22:40:44.03ID:???
ユーザ用って書き方がおかしかった
ユーザを管理するテーブル
0068NAME IS NULL
垢版 |
2016/09/05(月) 16:09:42.99ID:???
最初にテーブルを作成したら、新しいテーブルは必要ないシステムを作っています
この場合、テーブル構造をどう保存するのが正しいやり方ですか?
とりあえずcreate文を保存しています
0070NAME IS NULL
垢版 |
2016/09/05(月) 16:46:05.98ID:???
DBのツールでスキーマ保存すると結局CREATE文だけってのもあるしな
0072NAME IS NULL
垢版 |
2016/09/16(金) 14:02:36.57ID:???
例えば名簿のtableがあって、
id name address
という三つのカラムがあります。
idは重複しない番号です。
この時 id で order by して、
idが1000番台の人の最初の100人取り出す。
idが2000番台の人の最初の100人取り出す。
みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
何か良い方法はありますか?
MySQLです。
0074NAME IS NULL
垢版 |
2016/09/16(金) 15:37:16.31ID:???
>>72
> みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
indexが使われるなら効率は悪くない
0075NAME IS NULL
垢版 |
2016/09/16(金) 15:46:47.88ID:???
>>73>>74
すみません、初心者なのでもう少しヒント下さい。
よく理解できません。
0076NAME IS NULL
垢版 |
2016/09/16(金) 15:50:26.47ID:???
>>75
select * from 名簿 where id >= 1000 order by id limit 100;
とかするんだろうけど、idにindexが付けられてるなら効率は悪くない
これでわからないのならお手上げ
0077NAME IS NULL
垢版 |
2016/09/16(金) 15:57:39.07ID:???
処理が必ず1000番台ごとにするなら
もう一つ項目daiを追加して、indexを張っておき
id 1000〜1999 には 1 をセット
id 2000〜2999 には 2 をセット
id 3000〜3999 には 3 をセット
というのは?
select * from 名簿 where dai=1 order by id limit 100;
0079NAME IS NULL
垢版 |
2016/09/16(金) 17:12:26.30ID:???
>>75
select *
from 名簿
where
id between 1 and 100 or
id between 1000 and 1100 or
id between 2000 and 2100
0080NAME IS NULL
垢版 |
2016/09/16(金) 17:17:10.22ID:???
>>78
そんなのDBMSとオプティマイザの判断次第
カーディナリが十分高ければ、daiのインデックスは使われる可能性が高いだろ

元質問はMySQL指定か。MySQLのオプティマイザでは絶対使わんっていう話なら知らん
0081NAME IS NULL
垢版 |
2016/09/16(金) 17:19:10.66ID:???
>>78
idに抜け番がないとはどこにも書いてないけどな
0082NAME IS NULL
垢版 |
2016/09/16(金) 17:39:29.68ID:???
>>80
MySQLのこと知らんなら黙っとけよ
0084NAME IS NULL
垢版 |
2016/09/16(金) 18:05:34.85ID:???
mysqlはクソだからしかたがない。
0086NAME IS NULL
垢版 |
2016/09/16(金) 18:25:35.23ID:???
そういや、mysqlではsub queryが劇遅だってのは直ったの?
0087NAME IS NULL
垢版 |
2016/09/16(金) 21:39:39.26ID:???
>>80
daiのカーディナリティも十分に大きければそのインデックスも使われるだろうけど、
常にそれよりカーディナリティが大きいidのインデックスを使った方がいいに決まってる。
それにそもそもidでソートするわけだし。
0088NAME IS NULL
垢版 |
2016/09/17(土) 02:16:52.23ID:???
ありがとうございました
indexを試してみます
0089NAME IS NULL
垢版 |
2016/09/22(木) 11:38:01.04ID:???
SELECT * FROM table
WHERE ...
 AND ...
 AND ...
 AND ...
のようにAND条件をズラズラ並べる場合、
その条件を並べる順番で処理速度は変わりますか?
0090NAME IS NULL
垢版 |
2016/09/22(木) 12:44:02.41ID:???
長文失礼します。
mysqlで
article_infoテーブルに title(記事タイトル),url(記事のurl)を持っています。
blog_infoテーブルには blog_title(ブログのタイトル),blog_url(ブログのtopのurl)を持っています。

やりたいこと:
article_infoで取得した記事のブログのタイトルを一緒に取得したい。
article_info.url は、,blog_urlのレコードのどれかを含んでいます。
例:
blog_title:サンプルブログ
blog_url:http://sample.com/
article_info.url:http://sample.com/article/001


   
のようになっているので、もし取得したurlがblog_urlに含んでいた場合、対応するblog_titleを共に表示したいと考えています。
009190
垢版 |
2016/09/22(木) 13:24:14.82ID:???
ちなみに
SUBSTRING(url,1,LOCATE('/',url,8))  でblog_urlのどれかとマッチするurlが作れることがわかりました。
0092NAME IS NULL
垢版 |
2016/09/22(木) 13:32:19.51ID:???
>>89
普通は検索方法はオプティマイザが判断するから関係ない

定義順に条件書かれてないと複合インデックスが使用できないDBMSがあるとかいう噂は昔聞いたことある
その場合は複合インデックスの定義順に並べるほうが早い可能性が高い

オプティマイザが貧弱で検索順を入れ替えられないDBMSも聞いたことがある
その場合はカーディナルの高い順に検索条件並べろと教えられたことはある
単一テーブルの単純な検索なら、最悪でもそのテーブルのフルスキャン1回ですむから
まあどうでもいいと思うが
009390
垢版 |
2016/09/22(木) 13:33:17.23ID:???
すみません。下記のかんたんなsqlで取得できました。お騒がせしました。
select
a.title,
a.url,
b.blog_title
from
article_info a,blog_info b
0094NAME IS NULL
垢版 |
2016/09/22(木) 20:16:59.13ID:???
>>92
詳しい説明ありがとうございました。
MySQLです。
念のために順番を考慮してAND条件を書いてみます。
0095NAME IS NULL
垢版 |
2016/09/22(木) 23:39:21.90ID:???
>>93
fromでカンマで繋げるのは
INNER JOINの省略形な
0097NAME IS NULL
垢版 |
2016/09/22(木) 23:53:56.92ID:???
ふつう直積(CROSS JOIN)だと思うんだが、>>93読んであれ?と思った。
MySQLってそうなのか?
0098NAME IS NULL
垢版 |
2016/09/23(金) 00:03:00.24ID:???
whereでなんかしてなければ直積だな
009993
垢版 |
2016/09/23(金) 02:59:28.95ID:???
すいません、できたと思ってたけどできてませんでした。
しょうがないのでarticle_infoとblog_infoにblog_idカラムを追加して
Inner join で持ってきました。
0100NAME IS NULL
垢版 |
2016/09/24(土) 09:51:02.05ID:UI+2ILvZ
教えて下さい。
インサートしたカラムに不要な文字[:]がついてしまったのですが、
replaceで毎回取り除いてるとクエリが遅くなるので、すべて更新したいのですが、
update文で出来ますか?
0101100
垢版 |
2016/09/24(土) 09:57:30.44ID:UI+2ILvZ
できました。忘れてください。
0102NAME IS NULL
垢版 |
2016/10/05(水) 22:12:12.17ID:???
mysqlで質問です。
ng_wordテーブルがあります。
テーブルには、wordカラムにキーワードが登録されています。

main_textテーブルのtextカラムの中には
テキストの文章が入っています。

もしmain_textの中にng_wordのwordが含まれていたら、取得したくないのですが、
ロジックを挟まず、sqlだけで取得できますか?
0103NAME IS NULL
垢版 |
2016/10/05(水) 22:26:56.73ID:???
WHERE main_text NOT LIKE '%word%' じゃだめだったか?
0104102
垢版 |
2016/10/05(水) 22:40:45.63ID:???
>>103
ワードが1つならそれでも良いかもしれませんが、
複数あるので…
0105NAME IS NULL
垢版 |
2016/10/06(木) 00:04:56.18ID:???
このスレ、SQL文書こうとするとエラーになる
どうしたもんかな・・・
0106NAME IS NULL
垢版 |
2016/10/06(木) 00:19:48.71ID:???
Sorry, you have been blocked
You are unable to access 2ch.net

There are several actions that could trigger this block including submitting
a certain word or phrase, a SQL command or malformed data.

SQL文を投稿しようとすると、ハッキング行為とみなされるみたい
0108NAME IS NULL
垢版 |
2016/10/06(木) 18:36:58.34ID:???
不便になったもんだな
0109NAME IS NULL
垢版 |
2016/10/16(日) 17:07:47.24ID:9/d7j9zT
>>106
まあSQLインジェクション対策なんだろうけどな。
0110NAME IS NULL
垢版 |
2016/10/16(日) 17:11:39.20ID:53yW0F3M
>>107
前の書き込みをよく見ていないけど、テーブルの結合条件もなければ、カラムのテーブル名修飾もなくてわからない。

テーブル間の関係を説明してくれ。

そもそも初めに書いたようにSQLの書き方そのものが悪い。
0111NAME IS NULL
垢版 |
2016/10/16(日) 19:59:14.27ID:???
>>102 に書いてあるだろうに、何が分からないのか分からない
0112NAME IS NULL
垢版 |
2016/10/16(日) 23:41:51.01ID:yy6enVq7
兄弟関係の抽出 と LIMIT、OFFSETに代わるもの (マルチ)

OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定


http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」

SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1

上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。


T_児童マスタ

学級 氏名 電話番号
11  A  1111-11-1111
21  B 2222-22-2222
31  C 1111-11-1111
41  D 2222-22-2222
51  E 1111-11-1111
61  F 3333-33-3333



望む出力結果

学級 氏名 電話番号    兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11  A  1111-11-1111  31     C     51     E     
21  B 2222-22-2222  41     E
31  C 1111-11-1111  11     A     51     E
41  D 2222-22-2222  21     B
51  E 1111-11-1111  11     A     31     C
61  F 3333-33-3333
0113NAME IS NULL
垢版 |
2016/10/17(月) 01:58:23.01ID:ee1NFGBS
>>102
直積で結合して、textとwordを引数にとる文字列検索関数があれば、それをWHERE句の絞り込み条件にすればできるな。
0114NAME IS NULL
垢版 |
2016/10/17(月) 07:12:12.69ID:???
>>112
兄弟の数は可変なの?
2固定なら普通にjoinすればいい
0116NAME IS NULL
垢版 |
2016/10/17(月) 07:25:17.32ID:???
堂々とマルチと宣言すれば文句言われない!キリッ
0117NAME IS NULL
垢版 |
2016/10/17(月) 07:35:53.31ID:w90R1vLK
>>112
こんな感じでいいと思う
SELECT
MM.学級 
,MM.氏名 
,MM.電話番号
,S1.学級 AS 兄弟学級1
,S1.名前 AS 兄弟氏名1
,S2.学級 AS 兄弟学級2
,S2.名前 AS 兄弟氏名2
,S3.学級 AS 兄弟学級3,
S3.名前 AS 兄弟氏名3
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
on S1.電話番号 = MM.電話番号
and S1.学級 <> MM.学級
LEFT JOIN T_児童マスタ AS S2
on S2.電話番号 = MM.電話番号
and S2.学級 <> MM.学級
and S2.学級 <> S1.学級
LEFT JOIN T_児童マスタ AS S3
on S3.電話番号 = MM.電話番号
and S3.学級 <> MM.学級
and S3.学級 <> S1.学級
and S3.学級 <> S2.学級
WHERE nz(S1.学級,999) <= nz(S2.学級,999)
and nz(S2.学級,999) <= nz(S3.学級,999)
0119NAME IS NULL
垢版 |
2016/10/17(月) 18:24:29.94ID:3tZ2amHg
>>117
ありがとうございます。
これから試してみます。
0120NAME IS NULL
垢版 |
2016/10/17(月) 19:50:25.76ID:3tZ2amHg
>>117
少し拡張してみたところ「演算子がありません」とのエラーが
出てしまいます。かなり初歩的な質問になってしまいますが、
問題点をお教えください。宜しくお願いします。


SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号  ←ここ
AND S1.学年 <> MM.学年     ←ここ
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
0121NAME IS NULL
垢版 |
2016/10/17(月) 20:30:12.67ID:3tZ2amHg
>>112 >>117 >>120
こんな感じにしてみましたが、
今度は「JOIN式はサポートされていません。」
と出てしまいます。

SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM
(
(
T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号
AND S1.学年 <> MM.学年
)
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
)
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
0122NAME IS NULL
垢版 |
2016/10/18(火) 00:34:12.50ID:???
>>121
accessでは一つのクエリではできないみたい
サブクエリ作って3段重ねで繋げてみて
0123NAME IS NULL
垢版 |
2016/10/18(火) 03:32:30.90ID:???
重複行を見付けたら一行のみ残して他を削除したいのですが、
列名などを指定せずに、
DeleteDuplicateRow テーブル名
みたいなコマンドは無いのでしょうか?
キーは有りません。
0124NAME IS NULL
垢版 |
2016/10/18(火) 11:21:45.19ID:???
その残す1行の指定はどうやって決まる?
基本的にSELECTできるものは消せる
0125NAME IS NULL
垢版 |
2016/10/18(火) 11:44:05.07ID:???
>>124
重複しているので、どれを消しても良いと思うのですが。
0126NAME IS NULL
垢版 |
2016/10/18(火) 11:49:15.77ID:???
重複って言うのは、特定のフィールドだけじゃなく
(プライマリーキー以外)全てのフィールドが同じ値になるレコード
って意味で良いのかな?
0127NAME IS NULL
垢版 |
2016/10/18(火) 11:52:11.08ID:???
>>126
そうです。
プライマリキーも設定していません。
0128NAME IS NULL
垢版 |
2016/10/18(火) 12:29:42.88ID:???
>>127
a
a
a
これを一行残して消すとか無理だろ
0131NAME IS NULL
垢版 |
2016/10/18(火) 12:36:59.34ID:???
>>128
sqlserver ならrownumber関数使えばできる
0132NAME IS NULL
垢版 |
2016/10/18(火) 12:39:09.00ID:???
>131
とりあえずMySQLです。SQL SERVERでもやりたいです。
0133NAME IS NULL
垢版 |
2016/10/18(火) 14:01:40.70ID:???
>>132
やはり他の同じ値になるレコードと区別するために
一意のカラムをつけないと削除は無理だと思います
あるいは、>>129さんのやり方でテーブル全体を作り直すのが簡単
0134NAME IS NULL
垢版 |
2016/10/18(火) 15:17:32.19ID:???
一意になるフィールドがあれば(例えばプライマリキーがあれば)、
プライマリキー以外のフィールドでグループ化し、
その上で、一番小さなプライマリキー値のリストを取得、
そのキーリスト以外の全レコードを削除、って感じでできます。
0135NAME IS NULL
垢版 |
2016/10/18(火) 17:24:15.67ID:???
RDBMSで全く同じレコードは扱うの大変だし意味ないので今後のためにキー追加するか
重複したものは登録できないようにしたほうが良さげ
0136NAME IS NULL
垢版 |
2016/10/19(水) 01:24:02.04ID:wlxzgloU
皆さん、いろいろアドバイスありがとうございました。
134さんの方式を試してみます。
重複する行を除去するような操作は普通はやらないのですか?
0137NAME IS NULL
垢版 |
2016/10/19(水) 06:20:22.91ID:???
だからその重複させるような事態そのものを発生させないようにしてるんだってば
0139NAME IS NULL
垢版 |
2016/10/19(水) 07:23:29.08ID:???
重複データ消すのに、rownumber 関数が使えればorder byが使えるので、金額が大きいのとか最新のを残すとかできて便利なんだよな
http:/sotoattanito.hatenablog.com/entry/2015/10/20/230208
0140NAME IS NULL
垢版 |
2016/10/19(水) 18:19:03.82ID:???
>>121 >>122

かなり長文になりましたが、うまくいきました。
ありがとうございました。
0141NAME IS NULL
垢版 |
2016/10/20(木) 05:26:44.31ID:???
>>140
質問だけなら長文にならないだろ
後付けの条件あるからだろ
0142NAME IS NULL
垢版 |
2016/10/25(火) 01:39:06.04ID:???
以前見たDBのER図でずっと気になってるのがあるんだが
複合主キーでテーブル繋げていくやり方って普通なんかな

例えば

「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー →
繋がる「生徒」テーブルで「生徒番号」が追加 →
「塾」テーブルでは「塾番号」が追加 →
「教室」テーブルでは「教室番号」が追加

DB連携の案件(基幹系のDBに、WebとDBが一緒になった鯖からでリンクドサーバで合体)で、その教室テーブルの先に
「塾生がどこの塾で試験申し込んだか」を突っ込むテーブルこさえてどうこうするって奴だったんだが

みたいなのとでもいうか、SQLで書くと

select *
from school inner join
(select *
  from person inner join student on
  person.name = student.name and person.tel = student.tel and
  person.gender = student.gender and person.age = student.age) as selected_student on
  selected_student.name = school.name and selected_student.tel = school.tel ... ;ごめんもう無理

みたいな奴
細部があってるかどうかは覚えてないが、だいたいそういうSQLでないと仕様がない
ER図だったから泣きながらやった

書籍を見るととりあえずID振って縛りたいのにユニーク制約らしいんだが
実際だと複合主キー使っていくんだろうか?
正直DBの設計よくわかってない下請けのアホなんで、NE〇の方が正しいのかなあ、などと疑問が
0143142
垢版 |
2016/10/25(火) 01:43:49.46ID:gb+5Pezb
正確にはプログラマーですらない事務員 orz なんか釈然としないんだが、そういうものなのかなあ、と
0144NAME IS NULL
垢版 |
2016/10/25(火) 10:09:16.25ID:???
>>142
>「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー
そもそもこれが普通じゃない

> 正直DBの設計よくわかってない
本買って読め
0145NAME IS NULL
垢版 |
2016/10/25(火) 17:32:39.12ID:???
個人で主キーに年齢含むのは普通ないとは思うが
複合キーそのものは別に珍しい物でもない

まあ、ミドル層の都合で全部にID振ろうとか言う流れも無いわけではないけどな
0146NAME IS NULL
垢版 |
2016/10/25(火) 19:09:21.76ID:???
年齢は毎年変わるだろう
キーにしたいなら、生年月日の方
0147NAME IS NULL
垢版 |
2016/10/25(火) 20:35:20.47ID:???
実は死没者名簿だったとか
0148NAME IS NULL
垢版 |
2016/10/25(火) 21:14:22.45ID:???
死没者の集まる塾の教室か
0149NAME IS NULL
垢版 |
2016/10/26(水) 03:35:36.48ID:???
>>146
17からインクリメントしない声優なら知っている
0150NAME IS NULL
垢版 |
2016/10/26(水) 08:42:54.61ID:???
現在年齢とは言ってない気がする。
0151NAME IS NULL
垢版 |
2016/10/26(水) 10:55:39.68ID:???
人によって異なる解釈を受けるような定義名は避けた方がいい
0152NAME IS NULL
垢版 |
2016/10/26(水) 23:41:52.61ID:iZaFjONH
qiitaって無能のくせにタイトルで煽って
一読すれば書き手が思い込みの激しい初心者だってわかるんだけど
多数からコメントで間違い指摘されるとクソリプがwwwwwwwと煽ったり
せやから違う場合もあるって最後に書いてるやろ日本語読めんのかバカチョンwww
みたいな臭い奴が結構混じってるけどアレなんのためにやってんの?
誤解を招くタイトルでgoogle上位になるとqiitaから金もらえるの?
0153NAME IS NULL
垢版 |
2016/10/27(木) 00:01:04.98ID:zKThEwol
てすてす
0154NAME IS NULL
垢版 |
2016/10/28(金) 12:59:25.79ID:F5E1O/a0
お邪魔いたします。
ManegementStudioでストアドプロシージャをかけるようになりたいのですが、
家庭教師をしてくださる方いらっしゃいませんでしょうか?
お礼はご相談にて。
捨てアドをさらしますので、ボランティア精神にあふれる方お待ちしております。

rirarira_01@yahoo.co.jp
0155NAME IS NULL
垢版 |
2016/10/28(金) 13:40:24.99ID:7+o0ZZYT
>>154
お礼をするというのにボランティアとはどういうことなのか?
0156NAME IS NULL
垢版 |
2016/10/28(金) 13:43:36.79ID:7+o0ZZYT
>>154
Transact-SQLの本ならあるだろ。

昔からそんなに変わってない。

Management Studioがどうこうというはどういう意味?
0157154
垢版 |
2016/10/28(金) 14:13:08.47ID:F5E1O/a0
>>155
すみません、言葉足らずでした。
お礼はするんですが、なかなかお忙しい皆様が多いかと思いますので、
不勉強な私に時間を割いてくださるボランティア精神にあふれる方を
募集しておりました。

>>156
ありがとうございます。
早速購入してみます。

一次面接を合格した企業様がManegementStudioを使用しており
(SQLserber2014)ManegementStudioを使用して、
ストアドプロシージャをかけるようになりたいので、
ManegementStudioの操作性、ストアドプロシージャの知識、
両方が必要となる感じでございます。

現在ManegementStudio勉強環境にインストールして少しずつ勉強中ですが、
二次面接まで時間がないもので、どなたかに家庭教師していただけないかと思い、
失礼ながら書き込ませていただきました。

二次面接は来週早々なので、本が届くのが先か面接が先かという風になってし舞うかと思いまし手…。

どなたかお引き受けいただけませんでしょうか?
0158NAME IS NULL
垢版 |
2016/10/28(金) 14:29:29.64ID:???
綴りの間違いは恥ずかしいから直して
企業様wもそういうのチェックするよ
0159154
垢版 |
2016/10/28(金) 14:42:22.19ID:F5E1O/a0
>>158
失礼いたしました。
注意いたします。
0160NAME IS NULL
垢版 |
2016/10/28(金) 20:18:08.51ID:???
>>157
論理構成に難があるようだけど
二次は慎重にね。
0161NAME IS NULL
垢版 |
2016/10/31(月) 06:20:51.45ID:tmLBVYkg
SQLserber?serberって何?
0162NAME IS NULL
垢版 |
2016/10/31(月) 07:34:39.53ID:???
>>161
こんな簡単な間違いもくみ取れないバカは黙ってろw
0163NAME IS NULL
垢版 |
2016/10/31(月) 13:41:48.42ID:???
その環境での開発経験が必須スキルって面接なら不合格になるべき状況だし、
そうじゃないなら環境作ることができて、足し算するだけのストアドつくれりゃあとはどうとでもなると思うよ。
0164154
垢版 |
2016/11/04(金) 10:04:18.05ID:hFXlISxO
>>160
ありがとうございます。
ありのままのスキルをお話ししてきました。

>>163
ありがとうございます。
ストアドはできれば尚可の条件なので必須ではないのですが、
出来てくれると嬉しいな、ということでしたので勉強しておりますが、
環境作るところまでしか進んでおりません。

本日結果が出るのでお世話になったお礼に結果はご報告させていただきます。
0165NAME IS NULL
垢版 |
2016/11/07(月) 18:39:43.62ID:???
サブクエリを使う場合、サブクエリも範囲を絞ることで結果扱うデータ量が減って計算時間が短くなりますが、コードの可読性が悪くなります。
なにか良いアイデアはありませんか?
0166NAME IS NULL
垢版 |
2016/11/07(月) 19:12:51.29ID:???
サブクエリを使わない
0168NAME IS NULL
垢版 |
2016/11/07(月) 22:59:55.73ID:GjWHsT4m
サブクエリエオ使ったぐらいで「コードの可読性が悪くなります。」なんてウスラバカはそしたらここに書き込む低能
0169NAME IS NULL
垢版 |
2016/11/07(月) 23:29:01.28ID:???
いっそプロシージャーにして見えなくしてしまったら?
0170NAME IS NULL
垢版 |
2016/11/08(火) 06:31:47.39ID:???
関数みたいなことは出来ないの?
0172NAME IS NULL
垢版 |
2016/12/14(水) 04:41:53.30ID:Z9OjftC8
よろしければ教えていただければと思います
変数名に使われるstrsplって何の略でしょうか?

どうにも気になってしまって
0173NAME IS NULL
垢版 |
2016/12/14(水) 08:17:11.10ID:???
string split かねぇ
ggrと strsql を案内されるな
0175NAME IS NULL
垢版 |
2016/12/15(木) 17:35:03.27ID:???
ちょっと教えて欲しいんですけど。
select * で出てくるものについて、 レコードは並び順は不定ってのは知ってるんですが、カラムの順ってのはどうなってるんですか?
create tableで定義した順?
mysqlで自分で作ったテーブルで見るとなんか定義した順みたいだけど。。。
0176NAME IS NULL
垢版 |
2016/12/15(木) 17:44:44.64ID:???
まあこれは定義した順
でもまあそういうのが気になる状況では * あまり使わないかなあ
0177NAME IS NULL
垢版 |
2016/12/15(木) 19:01:53.50ID:???
>>176
ありがとです。自分で書いているのは * の時でも全部カラム名を書くようにはしているんですが。
0178NAME IS NULL
垢版 |
2016/12/16(金) 04:41:17.71ID:???
select * で列リストが定義順でない実装は見たことがないけど
それってちゃんとSQL仕様として決まってるのか
0179NAME IS NULL
垢版 |
2016/12/16(金) 08:01:01.01ID:???
>>178
知らんけど決まってないと * 表記自体使えなくね?
insert もカラム指定なくても使えるし。
information_schema 見れば分かるのかな。
0180NAME IS NULL
垢版 |
2016/12/17(土) 02:25:18.86ID:???
列リスト指定しないinsertは*とは書かないからなぁ
information_schemaで列の定義順がみれたしても、*の出力が定義順だという保証にはならないだろ

集合論として行の順番に意味がないなら、列の順番にも意味はないような気がするけど
列の順番はデータじゃなくて定義の一部だって言われたら意味があるような気もするが
0181NAME IS NULL
垢版 |
2016/12/17(土) 21:14:23.77ID:???
>>180
select * の順番は何かしら定義されていると思うよ。そうでないと何で select * と書くことが認められているのか分からない。

insert で列リストを省略した時も values に最初に書いた値がどの列に入るか分からなかったら、何で省略できるのさって話になる。

あと列リストは組とかタプルとかいうやつで集合じゃないでしょ。こっちは順序あるし同じ値が勝手に1つにまとめられたらチョー困る。
0182NAME IS NULL
垢版 |
2016/12/24(土) 02:14:16.89ID:???
table1
code  comment
-----  -------------
A001  コメント1です
A002  コメント2です
A005  コメント5です


table2
name  code1  code2  code3
-----  ------  ------  ------
名前8  A003  A002  A007
名前3  A004  A003  A001
名前2  A008  A001  A005

があり、例えば特定のキーワード

keyword = '1です'

に comment が部分一致するような code を含む table2 の行を取り出したいのです。
この例では、
名前3
名前2
の行です。

事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、
SQL初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。
0183NAME IS NULL
垢版 |
2016/12/24(土) 04:29:21.61ID:???
ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか
0184NAME IS NULL
垢版 |
2016/12/24(土) 07:36:26.32ID:???
Like と In でできるだろうけど、遅そう。
0185NAME IS NULL
垢版 |
2016/12/24(土) 09:08:19.15ID:???
>>184
そのSQLを書いて頂けませんでしょうか?
0186NAME IS NULL
垢版 |
2016/12/24(土) 09:22:17.32ID:???
ヒントじゃねーじゃん
0188NAME IS NULL
垢版 |
2016/12/24(土) 11:03:45.73ID:???
select t21.name
from table1 as t1
inner join table2 as t21 on t1.code = t21.code1
where t1.comment like '%1です%'
union
select t22.name
from table1 as t1
inner join table2 as t22 on t1.code = t22.code2
where t1.comment like '%1です%'
union
select
t23.name
from table1 as t1
inner join table2 as t23 on t1.code = t23.code3
where t1.comment like '%1です%'


多分↑で通るけど、もっといい模範解答求む
0189NAME IS NULL
垢版 |
2016/12/24(土) 12:12:04.02ID:???
ヒント like in exists
0191NAME IS NULL
垢版 |
2016/12/24(土) 13:13:57.30ID:???
select name from table2 t2,
(select code from table1 where comment like '%1です%') t1
where
t2.code1 = t1.code or t2.code2 = t1.code or t2.code3 = t1.code;
0192NAME IS NULL
垢版 |
2016/12/24(土) 13:43:58.17ID:???
>>191
さんの方法で出来ました。
>>188
さんの方法も試したのですが、うまく行きませんでした。
私のやり方が悪いのかもしれません。
皆さんありがとうございました。助かりました。
0193NAME IS NULL
垢版 |
2016/12/24(土) 14:45:42.42ID:???
もう一つ教えて下さい。
>191さんの方式ですと出力が
name, code になりますが name のみにして distinct したいのですが
やり方が分かりません。
宜しくお願い致します。
0194NAME IS NULL
垢版 |
2016/12/24(土) 15:01:12.39ID:???
>>193
その通りやってますか?
select文に指定している name しか表示しないはずですけど

先頭行に distinct 加えれば重複している name は消えます。
select distinct name from table2 t2,
0195NAME IS NULL
垢版 |
2016/12/25(日) 01:34:13.09ID:G9kEUO4A
csvからphpmyadminでインポートしてるんだけど途中で止まってしまう
7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる
あんまりsql関係ないけど原因わかる人いたら教えて
ちなみにxampp
0196NAME IS NULL
垢版 |
2016/12/25(日) 02:16:42.88ID:???
>>194
勘違いでした。
select * ...
としていました。
うまく行きました。
ちなみに>191のような
selectの中に(select ... )があるのは何ていう方式なのでしょうか?
ググルためのキーワードを教えて下さい。
0197NAME IS NULL
垢版 |
2016/12/25(日) 02:22:28.53ID:???
えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ
0198NAME IS NULL
垢版 |
2016/12/25(日) 12:45:10.61ID:???
>>197
ありがとうございました。
サブクエリ、初めて耳にしました。難しいです。
一時テーブル(#テーブル)と言うやつとは違うんですか?
0199NAME IS NULL
垢版 |
2016/12/25(日) 13:04:03.09ID:???
一応ここは初心者スレって名前ついているし
ベテランから見たら知ってて当たり前と思う質問でも
優しく回答してやれよ
0200NAME IS NULL
垢版 |
2016/12/25(日) 13:37:54.49ID:GwZs/74I
>>195

php文字化けとかめんどくさいから
.Netとかでそういうのやってる
0201NAME IS NULL
垢版 |
2016/12/25(日) 23:40:17.47ID:G9kEUO4A
195だが
エラー行から改めて入れて、エラー行から改めて入れて
何回かやったら全部入ったわ
原因はわからん
なんやら文字コード的なエラーメッセージだった気がする
0203NAME IS NULL
垢版 |
2016/12/26(月) 17:20:52.17ID:5PC6tP3J
DBに突っ込んだデータに対してちょっと込み入った操作をしたいとき、
例えば、「ORDER BY id ASC した状態で、前の行と比較して DATA の値が2以上離れてる行が3行以上続く」ケースを抜き出したいとき、
一般的に (個人的にでもいいです) どんなやり方が最も望ましいんでしょうか?

全行ガサッと取ってきてプログラム側でせこせこ判定していく以外思いつけなくて、これでいいのか不安です
0204NAME IS NULL
垢版 |
2016/12/26(月) 18:47:08.33ID:???
>>203
SQLや処理系ごとの拡張で頑張るとか
ストアドで処理するとか

それだけではどの方法が最善かはわからん
0205NAME IS NULL
垢版 |
2016/12/26(月) 18:52:31.92ID:???
>>203
実現できる方法でやる。
結果が問題なければ
そもそも何を不安に思う?
それは何故よ?
0207NAME IS NULL
垢版 |
2016/12/26(月) 20:24:10.05ID:???
日本終了

ーーーーーーーーーーーーーーーーー
 22日からの大雪で航空機が相次いで欠航となった北海道の新千歳空港で、24日夜、100人あまりの中国人が抗議し激しく詰め寄る騒ぎがあった。
0208NAME IS NULL
垢版 |
2016/12/26(月) 22:19:59.12ID:???
>>203
window関数のlagを使った例

select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;
0209NAME IS NULL
垢版 |
2016/12/26(月) 22:22:29.01ID:???
select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;
0210NAME IS NULL
垢版 |
2017/01/02(月) 16:54:20.40ID:???
教えて下さい。
カラムが
code,:index
name:名前
date_from:始めの日付 2017/1/1
date_to:終わりの日付 2017/1/3
days:差分 2
というレコードが1つあった場合に

2017/1/1 index 名前
2017/1/2 index 名前
2017/1/3 index 名前

という風に出力するSQL文を教えて下さい。
ちなみに postgresql です。
0211NAME IS NULL
垢版 |
2017/01/02(月) 17:15:10.65ID:???
>days:差分 2

このカラムの意味が分からない
0212NAME IS NULL
垢版 |
2017/01/02(月) 20:22:33.09ID:???
質問させていただきます。

2017-01-01 01:00:00
2017-01-02 01:00:00
2017-01-03 01:00:00
2017-01-04 01:00:00
といったdatetime型(Y-m-d H:i:s)のレコードdtimeを持つt1テーブルと
2017-01-02
2017-01-03
といったdate型(Y-m-d)のレコードdateを持つt2テーブルがあります。

t1テーブルのdtimeからt2テーブルのdateと日付(Y-m-d)部分が一致しないレコードを取り出すにはどのような記述をすれば良いでしょうか
この例の場合はdateにある2,3日のレコードを省いて1,4日のレコードのみを取り出したいです。
0213NAME IS NULL
垢版 |
2017/01/02(月) 20:37:55.02ID:???
>>210
365行のテンポラリテーブルを用意してうんぬん
0214NAME IS NULL
垢版 |
2017/01/02(月) 20:39:30.91ID:???
>>212
標準SQLの範囲じゃないような気もするけど、
DateTime型からDateだけ取り出す関数があるだろうからそれを使う。
0215NAME IS NULL
垢版 |
2017/01/02(月) 21:38:43.27ID:???
>>210
Select date_from + g.gs as 日付
, code1,name
From Test1 t
,(
  select generate_series(0,10) as gs
) g
Where g.gs <= t.days;


でも>>211が言うようにdaysは演算で処理すべきだべ
0216NAME IS NULL
垢版 |
2017/01/02(月) 21:45:28.71ID:???
>>212
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);
0217NAME IS NULL
垢版 |
2017/01/03(火) 09:50:33.91ID:???
>>213,215
できました。ありがとうございました。

>>211
テーブル設計自体はすでにあったものでして…
0218NAME IS NULL
垢版 |
2017/01/03(火) 10:39:07.59ID:???
>>214
>>216
できました、ありがとうございました。
datetimeをdateに置き換える簡単な方法があったんですね。
0219NAME IS NULL
垢版 |
2017/01/14(土) 10:16:41.35ID:???
phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない)
コピペをするのに設定などがあるのでしょうか?
0220NAME IS NULL
垢版 |
2017/01/14(土) 10:36:37.05ID:NxfK13Qk
MySQLの質問させてください
データ更新するとき、phpmyadminのインポートで更新するには、sqlのファイルはどのように書けばいいのでしょうか?

新規作成するときは、INSERT文でこんな風にしました
上書きするときの書き方があれば教えてください
INSERT INTO `sample_table` (`abc_id`, `efg_id`, `meta_key`, `meta_value`) VALUES
(202, 4002, '_thumbnail_id', '4001'),
(212, 4012, '_thumbnail_id', '4011'),
(222, 4022, '_thumbnail_id', '4021');
0221NAME IS NULL
垢版 |
2017/01/14(土) 12:04:14.38ID:???
外部結合クエリで
・A LEFT JOIN B
・B RIGHT JOIN A

これらは全く同じものではなく、結果が異なる場合があるので
外部結合は左のみ使うべしってどこかのサイトで見た記憶がある
どなたかそのカラクリを知っていたら教えて
0222NAME IS NULL
垢版 |
2017/01/14(土) 18:06:07.65ID:???
>>221
俺の中ではそんな事ないから答えられない
0225NAME IS NULL
垢版 |
2017/01/14(土) 21:05:14.36ID:???
>>220

insertでするなら on duplicate key update
又は replaceでというのも

それぞれについて説明をちゃんと読んでから使ってね
0226NAME IS NULL
垢版 |
2017/01/15(日) 22:54:38.21ID:???
>>225
ありがとうございます!
確認して使ってみます
0228NAME IS NULL
垢版 |
2017/01/19(木) 06:50:34.21ID:???
DISTINCT がキーボードで打ちづらいです
0229NAME IS NULL
垢版 |
2017/01/19(木) 12:41:28.22ID:???
そんなあなたにオススメDvorak配列キーボード
0230NAME IS NULL
垢版 |
2017/01/19(木) 18:01:27.09ID:???
ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合
テーブルは分けるべきでしょうか?

例えば、Amazon マーケットプレイスのような
販売ユーザーと購入ユーザーの2種類のユーザーが存在する
このような場合のテーブル設計についてご教示いただけると有り難いです。

スレ違いでしたらすいません。
0232NAME IS NULL
垢版 |
2017/01/19(木) 18:56:48.57ID:???
>>231
スレ違いでしたねすいません
スレを教えていただきありがとうございます。
0233NAME IS NULL
垢版 |
2017/01/24(火) 21:51:15.94ID:oe0NRhg4
何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信

仲間という人間に対する盗聴盗撮生ネット配信の会

しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる

そんなことが今この国では行われています

仄めかしの隠語は
猫 穴 水 仲間 
0236NAME IS NULL
垢版 |
2017/01/31(火) 13:26:45.74ID:???
selectで取得するカラムにAUTO_INCREMENTを指定する方法はありませんか
0237NAME IS NULL
垢版 |
2017/01/31(火) 17:11:46.30ID:???
>>236
取得したレコードに連番を付けたいなら方法はある
もしそうなら、これ以降は自分が使っているデータベーススレに移動しろ
0238NAME IS NULL
垢版 |
2017/02/01(水) 19:11:49.33ID:???
>>236
開始番号はどうやって決めるの?
0239NAME IS NULL
垢版 |
2017/02/02(木) 07:10:22.66ID:???
普通は1からだろ100からとか別でも足せばいい
0240NAME IS NULL
垢版 |
2017/02/06(月) 16:33:18.22ID:???
>>237
どのDBでも大差ないだろ・・・
と思って実験したらmysqlとoracleとpostgresとsqliteで全部やり方違うのな
ちょっと面白かった
0241NAME IS NULL
垢版 |
2017/02/08(水) 00:06:58.96ID:wCjGsKbG
>>238
フェッチした順に普通は1から振られる。
0242NAME IS NULL
垢版 |
2017/02/08(水) 23:19:57.51ID:???
質問させて頂きます

社員IDひとつに対して10行の権限管理レコードが必要です
これを500人分ひとつのテーブルに追加します

レコード例

社員ID, 画面ID, 閲覧, 編集, 削除, …
00000, W001, true, false, false, …
00000, W002, true, true, true, …

00000, W010, false, false, false, …

権限管理10行のテンプレと追加したい社員IDのリストはあります
SQL Management StudioかAccessを用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします
0243NAME IS NULL
垢版 |
2017/02/09(木) 01:15:59.62ID:I+KHRssK
>>242
絞り込み条件が社員IDと画面IDなんだろ?
何がやりたいのか書いてくれ。
0244NAME IS NULL
垢版 |
2017/02/09(木) 07:12:02.44ID:???
>>242
手作業多めでいいなら
1 適当なエディタでカンマをタブに変換
2 excelを開いてシート全体を文字列に設定
3 1をシートに貼り付け
4 テーブルとおなじ列に加工
5 accessのテーブルに貼り付け
まあinsert文に加工して実行でもいいかもね
0245NAME IS NULL
垢版 |
2017/02/09(木) 09:16:23.10ID:I+KHRssK
>>244
どう読んだらCSVファイルの取り込みと解釈できるのか?
0246NAME IS NULL
垢版 |
2017/02/09(木) 12:27:52.21ID:???
>>243-245
レスありがとうございます

今回は>>244さんのアドバイスを元に
社員IDと画面IDのテンプレを二重ループで合体させてテキストに出力した5000行を
テキストエディタとExcelで整形してAccessに貼り付けて追加しました
0247NAME IS NULL
垢版 |
2017/02/09(木) 12:36:20.74ID:???
馬鹿がよく分からん絡み方してるw
0248NAME IS NULL
垢版 |
2017/02/09(木) 18:13:26.82ID:???
言語の設定ってインストールするときに指定する仕様なんですか?
何も指定しないと勝手にユニコードになると思っていたのですが
0249NAME IS NULL
垢版 |
2017/02/09(木) 18:16:49.08ID:???
>>248
自分が使っているデータベーススレに移動して、疑問に思っていることをもっと具体的に聞け
0250NAME IS NULL
垢版 |
2017/02/09(木) 18:30:19.23ID:???
>>249
移動します
SQLServer2012なんだけど
俺もよくわかってない
0251NAME IS NULL
垢版 |
2017/02/09(木) 22:23:19.19ID:???
>>242
insert ... select ... from 権限管理10行のテンプレ (innnerとかcrossとか)join 追加したい社員IDのリスト
で行けるんじゃないのか
もうエクセル整形でやったのならそれでいいけど
0252NAME IS NULL
垢版 |
2017/02/09(木) 22:32:25.23ID:???
何をやろうとしているかは大体想像できるんだが、
こういう仕組みを実装する時って、
個人単位で権限を操作するのかな?
新しい機能が追加される度に、全てのユーザーに
権限の可否を設定しないといけなくならないか?
0253NAME IS NULL
垢版 |
2017/02/10(金) 00:54:29.88ID:UY3eO74e
>>252
ロール
0254NAME IS NULL
垢版 |
2017/02/10(金) 03:00:09.46ID:???
>>251
自分も「これは直積(cross join)でやるかな」と思ったんだけど
直積って実用上はあんまり出てこないんだよな
(SQLの考え方としてはとても重要だと思うのだけど)
それを初心者スレで勧めていいものかと躊躇ってしまった
0255NAME IS NULL
垢版 |
2017/02/10(金) 06:43:28.54ID:???
244書いたの俺だけどリストって書いてあったから
深く考えずにテキストファイルかなんかだと思ったわ
騒がせてすまんね
0256NAME IS NULL
垢版 |
2017/02/10(金) 08:29:16.23ID:???
>>242
要件にもよるかも知らんが事前に全部追加せんでいい方向もある。
ユーザーテーブルとの乖離にどう対処するか面倒だし。
ユーザーテーブルがなかったら、うん、まぁ、うん。
0257NAME IS NULL
垢版 |
2017/02/15(水) 17:17:09.16ID:???
超初心者です。
ユーザーごとに掲示板を作る場合
例えば
boardsというテーブルを作って、すべての掲示板の書き込みをそこで管理するのがいいのか、
それともユーザーごとに001boardsみたいにテーブルを作って管理するのがいいのでしょうか?
一元管理の場合、書き込み数が多くなった場合に処理が遅くなるなどの、問題点はないでしょうか?

アドバイスをよろしくおねがいします<(_ _)>
0258NAME IS NULL
垢版 |
2017/02/15(水) 17:33:15.31ID:IlwZKpGL
>>257
ユーザーごとにテーブルを作るのは管理がたいへんだろ。性能の問題はかなりのデータ量でないかぎりは問題ないと思っていい。
0259NAME IS NULL
垢版 |
2017/02/15(水) 17:53:19.35ID:???
>>258
一元管理で設計してみたいと思います。
アドバイスありがとうございました。
0261NAME IS NULL
垢版 |
2017/02/16(木) 01:27:11.83ID:???
>>260
ユーザーごとだとして、
例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

この場合レンタルサーバーなのでsqlite3を使うことになると思います
(Mysqlはテーブル数の制限がある)
0263NAME IS NULL
垢版 |
2017/02/16(木) 01:39:58.29ID:???
レンタルサーバー運営、やろうってこと?
0264NAME IS NULL
垢版 |
2017/02/16(木) 01:45:38.81ID:???
レンタルサーバーでサイトを作るだけです
そこでユーザー登録をして、ユーザーごとに専用の掲示板を建てるイメージです
0265NAME IS NULL
垢版 |
2017/02/16(木) 01:51:19.83ID:???
その程度なら一つのテーブルで良いと思うけど
不具合あると、隣のユーザーの掲示板が覗けるとかあるかもね
0266NAME IS NULL
垢版 |
2017/02/16(木) 02:04:14.76ID:???
>>265
アドバイスありがとうございます。
0267NAME IS NULL
垢版 |
2017/02/16(木) 07:12:43.93ID:???
ユーザー退会したらデータどうすんの?
破棄するならテーブル別がらくじゃね
同一テーブルだと日次で深夜にでも削除実行するんか
0268NAME IS NULL
垢版 |
2017/02/16(木) 07:20:00.53ID:???
また削除フラグの話にw
0269NAME IS NULL
垢版 |
2017/02/16(木) 07:42:42.89ID:???
盛り上ってまいりましたw
0272NAME IS NULL
垢版 |
2017/02/16(木) 12:05:27.40ID:???
>>271
sqliteで複数ユーザーが
同一テーブルにアクセス、

まだわからないかなw
0273NAME IS NULL
垢版 |
2017/02/16(木) 15:04:33.47ID:???
>>261
> (Mysqlはテーブル数の制限がある)
どこ情報かしらないが、普通は制限はないよ

また、仮にsqlite3を使うとしたとき、重大な問題が別に発生する
それは、誰かが書き込みをするとファイルがロックするということ
要件的にそれで大丈夫かどうかは熟考する必要がある

逆にMySQLを使う場合でもユーザ単位でテーブルを分割する場合もある(ユーザIDによる水平分割)
ソシャゲ界隈では良くあること
これも、要件と相談してからだな
0274273
垢版 |
2017/02/16(木) 15:10:47.58ID:???
あ、テーブル数の制限って、レンタルサーバだからなのか
なるほどねー
0275NAME IS NULL
垢版 |
2017/02/16(木) 16:32:37.42ID:???
まあこのまま続けてたら半年後にはなんでこんなバカな質問したんだろうと思うこと請け合い
0276NAME IS NULL
垢版 |
2017/02/16(木) 16:51:32.11ID:???
ユーザ数が1万人を超えるようなサービスを、MySQLのテーブル数が制限されるようなゴミレンサバで実行するなんて・・・

すごーい(別の意味で)
0277NAME IS NULL
垢版 |
2017/02/16(木) 17:08:18.22ID:???
金取るシステムとは思えん
無料サービスだろ
エラーが発生してもデータが壊れても、すいませんテヘで済むような奴
0280NAME IS NULL
垢版 |
2017/02/16(木) 22:26:13.47ID:???
盛り下がってまいりました、、、
0281NAME IS NULL
垢版 |
2017/02/16(木) 22:44:43.41ID:???
会員数1万人のWebベースのサービスやりたいんだったら、SQLがどうのではなく、
それなりの通信環境、ハードウエア、システム要員を用意しないと駄目だろう
0282NAME IS NULL
垢版 |
2017/02/17(金) 07:10:18.37ID:???
そもそもこんなところで質問するようなやつなんだから
訳分からず質問してるだけだろ
察して遊んでやれよ
0284NAME IS NULL
垢版 |
2017/02/17(金) 09:51:42.36ID:???
>例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

要求仕様じゃないかな?
0285NAME IS NULL
垢版 |
2017/02/17(金) 17:25:57.52ID:???
テーブル名をフラグに使ったことならあるよ
テーブルがオープンできない=それは未使用

当時はみな気がくるっていた
0286NAME IS NULL
垢版 |
2017/02/23(木) 21:19:47.86ID:???
これからSQL勉強する者です
独学で本を参考にするつもりですが、まずSQLでデータベースから抽出できます、といえる程度になるにはどのくらいの期間見込めばいいでしょうか?
0288NAME IS NULL
垢版 |
2017/02/23(木) 21:40:25.72ID:???
抽出だけなら、5分も掛からないんじゃないか?
0289NAME IS NULL
垢版 |
2017/02/23(木) 22:36:11.91ID:???
本を買いにいく時間がある
0290NAME IS NULL
垢版 |
2017/02/23(木) 22:43:24.60ID:???
いや真面目に・・3ヶ月くらいだろうか?ととりあえず予測を立てたのですが・・
実務でできないのが痛いところなのですが
0291NAME IS NULL
垢版 |
2017/02/23(木) 22:47:49.28ID:???
何をインストールするのか知らんけど、つまずく奴はRDBを自分のPCにインストールするとこからつまずくからなw
あれこれやる前から考えてもしょーがない。自分でコマンドをどんどん入れてみるこったよw
0294NAME IS NULL
垢版 |
2017/02/23(木) 22:54:07.87ID:???
君がPCを所有していて、OSが入っていて、ネットに接続できているなら
適当なSQLをダウンロードしてインストールすれば
勉強は今すぐにでも開始できそうなんだが
0295NAME IS NULL
垢版 |
2017/02/23(木) 22:55:54.53ID:???
>>290
あんたの才能とやる気次第としか言えない
SQLはかなり癖のある言語だから、ダメな人は1分で本を閉じて終わり
0296NAME IS NULL
垢版 |
2017/02/23(木) 22:58:52.89ID:???
>>291
MySQL
能書きいうよりまずやることは経験済み納得だが、今後の方向づけを検討しての質問だった
0297NAME IS NULL
垢版 |
2017/02/23(木) 23:01:31.26ID:???
>>294
そうなんですよ
いまうちmacしかも壊れた・・(へぼくてすまん)
つうことでうちは会社があまりダウンロードとかうるさくないのですが、
会社のwinマシンに落とすことを目論み中ですが、会社PCに個人で落としてる人いますか?
0298NAME IS NULL
垢版 |
2017/02/23(木) 23:27:33.63ID:???
それはここで聞かずに、上司に聞くべきことだろ
ちゃんと理由を説明して、何をインストールしたいか説明し
それが仕事で必要なことだとなればインストール可能じゃないのかな?

君の会社での役割が管理者で、PCの設定に関して権限があるなら、聞かなくてもいいだろうけど
0299NAME IS NULL
垢版 |
2017/02/23(木) 23:34:32.60ID:???
やはりこっそりはまずいか…
実務じゃ必要ないって言われるのが関の山だ
だってうちの上司ろくに関数もわからないお馬鹿…なんでもマッチョに力技が得意技なもんで
なくせに色々要求してくる
んでそんなとこを抜け出すためのSQL習得なのです
Winマシンを大人しく速攻買おう
つうことで安いの探すとこから始めます
Dellあたりかなー できたらVAIO
0300NAME IS NULL
垢版 |
2017/02/24(金) 05:16:28.19ID:???
けっこうまじめに質問したんだけどやっぱ2ちゃんだな
冷やかしだけで答えてはもらえないか
ま、いいやとっととやるから
0302NAME IS NULL
垢版 |
2017/02/24(金) 08:44:57.02ID:???
真面目に回答しても冷やかしとしか受け取って貰えない w
0303NAME IS NULL
垢版 |
2017/02/24(金) 09:11:23.71ID:???
>>300
だいぶ抽象的で、何に役立つのか
分かりにくい質問だったことは
覚えておいて。
0304NAME IS NULL
垢版 |
2017/02/24(金) 10:00:29.90ID:???
DB板は、おふざけな質問でない限りマトモに答えてくれるよ
0305NAME IS NULL
垢版 |
2017/02/24(金) 11:03:39.31ID:???
SQLでデータを抽出する基本だけなら、みんな言うように1日でできるぞ
select文流すだけだからな

問題は、SQLを発行する方法とそのための環境の構築が難しいだけで
0307NAME IS NULL
垢版 |
2017/02/24(金) 18:58:00.39ID:U+kKk5Yi
>>305
基本ってなんだよ?
0309NAME IS NULL
垢版 |
2017/02/24(金) 20:52:10.93ID:dYCyIIDS
まず初心者には結合が1日で理解できるかどうか。
0310NAME IS NULL
垢版 |
2017/02/24(金) 21:09:40.60ID:???
批判も応援する言葉もどちらもありがとう

290で3ヶ月と言ったのは、会社のちょっとデータ詳しいちょー意地悪なおっさん(でも非エンジニアで営業部のデータ取りまとめしてる程度)に
SQL独学で3ヶ月でてきて当たり前、オレは3ヶ月で覚えた、と言われて

もちろんそれはマウントしたいだけだからどの辺りまでかなんて言わないしこっちも聞かない

だから漠然とした答えに困るような素人くさい愚問なアホな質問とわかっていたんだけど、
とりあえずの導入としてはどのくらい見ればいいかな、と知りたくなってしまって

だから答えてくれた時間とかはその通りでもあるし、その限りでないこともわかってる

そのおっさんは独学で覚えたのが自慢で、でもそのおっさんがExcelで作ったものはちょっとした普通の作業が汚い

SEの人と一緒に働いたとき当たり前のことをちゃん綺麗に整えて作るからとても感心した

そんななんやかやがあり
スレ違いになり申し訳ない

Hello world
0311NAME IS NULL
垢版 |
2017/02/24(金) 23:02:19.13ID:???
本日、postgresqlをDB2に替えたらwebアプリが動かなくなったわ。
もう逃げたい。俺のせいじゃないけど。
0312NAME IS NULL
垢版 |
2017/02/25(土) 00:22:52.30ID:???
テストもせずにいきなり入れ替えたのかよ
そんなことができる現場、逆にすごい楽しそうだな
0313NAME IS NULL
垢版 |
2017/02/25(土) 20:49:52.03ID:???
SQL言語ってオラクルとかMysqlとか、MSで違うんですか?
0314NAME IS NULL
垢版 |
2017/02/25(土) 20:58:21.27ID:???
基本は同じ
それぞれ拡張している部分がある
0315NAME IS NULL
垢版 |
2017/02/25(土) 21:38:20.64ID:???
要するに、違う。
0316NAME IS NULL
垢版 |
2017/02/25(土) 22:09:37.73ID:???
SQLとMySQLって違うの?
でSQLがあってのOracle?
0317NAME IS NULL
垢版 |
2017/02/25(土) 22:27:30.71ID:???
ここでそんな質問する前に本の1冊でも読めよ
0318NAME IS NULL
垢版 |
2017/02/25(土) 23:02:52.27ID:???
>>316
単語それぞれでググってみればわかる
MySQLとOracleはデータベースソフトウェア製品の名前
SQLはそれらで共通に使われている(ただし方言あり)言語の名前
0319NAME IS NULL
垢版 |
2017/02/25(土) 23:11:02.85ID:???
そんくらいわかってるわ
0320NAME IS NULL
垢版 |
2017/02/25(土) 23:40:52.73ID:???
誰が質問者か分からなくなってきた

質問者はsageをせずに書き込むと良いですよ
そうすれば、ID表示でますから
0321NAME IS NULL
垢版 |
2017/02/26(日) 14:45:56.38ID:LVGuIyS4
SQL ServerとMySQLを単にSQLと略す馬鹿がいるので混乱する。
0323NAME IS NULL
垢版 |
2017/02/26(日) 16:08:09.91ID:???
初めてダウンロード
PostegerSQLとMySQLどちらがいいだろうか?
0324NAME IS NULL
垢版 |
2017/02/26(日) 16:09:23.95ID:???
両方入れとけ
管理方法が違うのでコンソールまたはツールで馴染んだほう残せばいい
0325NAME IS NULL
垢版 |
2017/02/26(日) 16:21:31.02ID:???
ツール使うなら、両者ともそれほど違いはなかったと思う
コンソールだと、違いがあるから慣れるまで時間掛かりそう
0326NAME IS NULL
垢版 |
2017/02/26(日) 16:30:27.98ID:???
>>324
おけ
両方入れる

>>325
んーよくわからず、まだ先のことだろうから後で考えるわ
0328NAME IS NULL
垢版 |
2017/02/28(火) 12:15:15.76ID:???
SQLを触ったことないんですが、クエリ文を覚えるためにはどうすればいいでしょうか?
C#という言語でLINQというものは触ったことあるのでまったくわからないとは思わないのですが・・・
0329NAME IS NULL
垢版 |
2017/02/28(火) 13:53:34.15ID:???
>>328
普通の人は、本買って読むんだけど・・・
0330NAME IS NULL
垢版 |
2017/02/28(火) 14:01:20.31ID:???
とりあえず環境を用意する
0331NAME IS NULL
垢版 |
2017/02/28(火) 18:25:09.54ID:???
SQL試す環境つくればいいよ、上にあるMySQLやPostgreSQLをローカルに入れて
PgAdmin3とかMySQL Workbenchとか動かしてみては
SQLite3でも試せるけどね
0332NAME IS NULL
垢版 |
2017/02/28(火) 19:39:01.87ID:jzPtOTcH
>>328
SQLとクエリと言ってる時点でおかしい。たぶんSQL Serverが前提なんだろうな。
0333NAME IS NULL
垢版 |
2017/02/28(火) 20:04:26.66ID:yUIIsXa+
sql serverが前提だとなんか困るのかな
0334NAME IS NULL
垢版 |
2017/02/28(火) 21:21:44.81ID:???
職場でAccessって使う人少ないですか?
0335NAME IS NULL
垢版 |
2017/02/28(火) 21:58:28.42ID:???
>>334
質問の意図がわからない
それをここで俺らに聞いて何をしようというのだ?
0336NAME IS NULL
垢版 |
2017/02/28(火) 22:07:13.89ID:???
>>334
えっ!?!?
いやいや普通もれなく全員清掃係りの人も警備の人も使うでしょ
おたく使ってないの???
0337NAME IS NULL
垢版 |
2017/02/28(火) 23:17:08.33ID:???
使ったt事あるよ。で、それがどうした。
0338NAME IS NULL
垢版 |
2017/03/01(水) 02:02:24.28ID:???
accessは帳票必要なシステムでは楽チンだけど
帳票なかったらphpのほうが楽チンだな
0339NAME IS NULL
垢版 |
2017/03/01(水) 07:11:22.21ID:???
>>328
業務で使うsqlのパターン は限られてるから
初心者向けの本を買えばいいと思うよ
0340NAME IS NULL
垢版 |
2017/03/01(水) 12:20:17.22ID:???
業務で使わないsqlは多種多様なのか?違いが分からん
0342NAME IS NULL
垢版 |
2017/03/01(水) 15:57:14.00ID:???
DB自体の操作やユーザー管理も含めて言っているのじゃないかな?
0343NAME IS NULL
垢版 |
2017/03/01(水) 18:47:02.65ID:???
業務で使う時は特殊な記述を避けるというだけの話かと
0344NAME IS NULL
垢版 |
2017/03/01(水) 20:05:39.23ID:???
sqlに特殊な記述なんてあったか?
0345NAME IS NULL
垢版 |
2017/03/02(木) 03:01:35.02ID:???
顧客id 顧客名
取引id 顧客id 取引額 取引日

こんな2つの顧客テーブルと取引テーブルがあるとします。
取引テーブルの取引日と顧客idはUNIQUEな関係です(同じ日の再度の取引はない)。
ある顧客との、ある期間中どれだけ取引があったか(回数と総額)の計算をしたいです。

顧客テーブル
  顧客id INT PK
  顧客名 VARCHAR NN

取引テーブル
  取引id INT PK
  顧客id INT FK
  取引額 INT NN
  取引日 DATE NN
  UNIQUE (顧客id, 取引日)

インデックスを貼るべきところとかよくわからないのですが、テーブルはこんな感じでいいのでしょうか?
検索(WHERE)に取引日を使うので、取引日にもインデックス貼ったほうがいいのでしょうか?
あと取引日のDATE型なんですが、UNIXTIMEのようにある日からの起算のほうが検索早そうなのでINTにしたほうがいいですか?
0346NAME IS NULL
垢版 |
2017/03/02(木) 06:14:34.18ID:???
>取引日にもインデックス貼ったほうがいいのでしょうか?

それで検索をよくするんだったら良いんじゃないの。自分は株価テーブル作っててPKが(コード、出来高年月日)なんだけど、
出来高年月日での検索もするんでその出来高年月日にindex貼ったら実行スピードめちゃ上がったし
0347NAME IS NULL
垢版 |
2017/03/02(木) 14:18:17.25ID:???
>>345
DATE型使っても、内部表現はバイナリー値だから実行スピードは変わらないだろう
0348345
垢版 |
2017/03/03(金) 05:48:15.55ID:???
>>346-347
レスありがとうございます。
実例での効果まであげていただいて感謝です。
DATA型でも検索速度は変わらないとのことなので、
このままでCREATEしたいと思います。
0351NAME IS NULL
垢版 |
2017/03/03(金) 17:39:50.51ID:???
(DATA型は)このままでってことだろう
0352NAME IS NULL
垢版 |
2017/03/04(土) 06:08:32.02ID:GZ+afmPr
RDBMSの内部構造を意識するのが初心者なのかと。
0353NAME IS NULL
垢版 |
2017/03/04(土) 07:48:26.00ID:???
まあプログラムやってればその辺はちょっとは検討つくでしょう
JavaScriptみたいのしかやったことないとかだとDBいじる機会もなかなかないだろうし
ところでDATE型とINT型の検索速度の比較って
ググって見るとINT型のほうが早いみたいだけど
0354NAME IS NULL
垢版 |
2017/03/04(土) 08:31:07.04ID:???
郵便番号と地名が書いてるデータベースを作るとして
0から始まる北海道はとりあえず無視するとして
7桁のユニークな数字になるわけですが
そういう番号があっても主キーにせずオートインクリメントなサロゲートキーを作るべきですか?
0355NAME IS NULL
垢版 |
2017/03/04(土) 08:46:24.32ID:???
郵便番号は郵便局が自分たちの業務をやりやすくするために振っただけのものであって
地名との一対一の紐付けを保証するものではないし
郵便局の都合で変更されることもある
そのへんを理解した上で使うなら別にいいんじゃない?
0356NAME IS NULL
垢版 |
2017/03/04(土) 09:03:59.24ID:???
「郵便番号の」サロゲートだとしたらそのへんは何も変わらんが。
0357NAME IS NULL
垢版 |
2017/03/04(土) 09:23:42.43ID:???
>>353
> ところでDATE型とINT型の検索速度の比較って
> ググって見るとINT型のほうが早いみたいだけど

そらそうよ。プログラムやってれば見当つくはず。

>>354
困ったことに、郵便番号と地名は1:nです
0358NAME IS NULL
垢版 |
2017/03/04(土) 09:32:54.15ID:???
データベースは当然、1:n関係を表現できるだろうに。何を困ることがある?
0360NAME IS NULL
垢版 |
2017/03/04(土) 10:37:00.43ID:???
郵便番号はちょっと例えが悪かったかな・・・
例えばクレジットカードとか連番だと都合が悪いけど一意な番号
それでもサロゲートは必要?
0361NAME IS NULL
垢版 |
2017/03/04(土) 10:49:39.48ID:???
そういう質問している人には必要ない。
0362NAME IS NULL
垢版 |
2017/03/04(土) 11:01:27.93ID:???
だってとりあえずauto incrementを主キーにしとけって書籍に書いてるんだもの
0364NAME IS NULL
垢版 |
2017/03/04(土) 11:36:56.78ID:???
初心者にはあれこれいうよりベストな書き方覚えろっていう
ベストでもないオレオレ書き方教える書籍は多い
全部のテーブルにcreated updated作れみたいな
0365NAME IS NULL
垢版 |
2017/03/04(土) 15:42:19.31ID:???
SQLはなんで大文字が好きなの?
0366NAME IS NULL
垢版 |
2017/03/04(土) 23:32:19.88ID:b+Y4fejK
>>353
そもそもどのRDBMSのINT型なのか知らないが、標準SQLではコンピュータの数値表現としているので、速いのはあたりまえ。

ちなみにOracleでは標準SQLのINT型はNUMBER型なのでまったく違う。当然Oracleでは計算が遅くはなる。
0367NAME IS NULL
垢版 |
2017/03/04(土) 23:33:46.81ID:b+Y4fejK
>>365
プログラミング言語の歴史では、小文字をメインに使うようになったのはC言語あたりから。
0368NAME IS NULL
垢版 |
2017/03/04(土) 23:57:32.49ID:???
Oracleの場合、内部で大文字に変えていると聞いたことがある
本当かどうかは確かめたことないし、今もそうなのかは分からないが
使っていた当時は全部大文字で書いてたな
0369NAME IS NULL
垢版 |
2017/03/05(日) 04:43:17.86ID:???
DB側で用意してる関数含めてユーザ入力による変数になってる
テーブル名とかカラム名以外は全部大文字にしてる
`table` `long_table_name` `column` `long_column_name`
ご丁寧に``で囲んでるけどこれもいらんのよなあ
なんかいい規則があればいいんだけど
0370NAME IS NULL
垢版 |
2017/03/05(日) 11:05:14.00ID:???
基本的に大文字しか使えない環境が当たり前の頃からSQLあるからな、、、
COBOLでの EXEC SQL 文とか懐かしいなあ
0371NAME IS NULL
垢版 |
2017/03/05(日) 15:50:25.27ID:ZV3ds4gJ
>>368
それを言うのがいるけど、プログラマでそんなことを言ったら恥ずかしいぞ。大文字、小文字を区別しないなら大文字、小文字の判定処理が入るわけで、そこから大文字に変換する処理が遅くて問題になるなど阿呆みたいなこだわりだ。
0372NAME IS NULL
垢版 |
2017/03/06(月) 00:07:50.62ID:???
大文字に変換する処理が遅くて問題になるなんて誰か言ってた?
0373NAME IS NULL
垢版 |
2017/03/06(月) 01:05:03.96ID:VHVbqVdu
>>368 が書いてるが?
0374NAME IS NULL
垢版 |
2017/03/06(月) 01:09:49.78ID:VHVbqVdu
大文字が大文字かどうかより、文字がなんなのかの判定も入るわけで、そんな処理時間はいつの時代のコンピュータの性能で考えているんだよw

こんなことを言い出したらRDBはあらゆることが遅すぎて使えない。現実にRDBはコンピュータの性能が上がったから使い物になるようになった歴史も知らないのか?
0376NAME IS NULL
垢版 |
2017/03/06(月) 02:48:06.58ID:???
368本人です。何かお騒がせしてしまい済みません。
相当昔の話です。
動かしていたサーバーはW2k、CPUはP3、メモリー4G程度でした。
できるだけ負荷を減らせと言う指示の中で作業してました。
0377NAME IS NULL
垢版 |
2017/03/06(月) 05:47:11.51ID:???
パーサーの仕様で大文字小文字区別しないにしても
大文字しかパースできなくて変換処理が必要だとしても
それに判定を挟む必要もなければ
ただの一文にすぎないSQLに処理時間なんてギャグかよって話
0378NAME IS NULL
垢版 |
2017/03/06(月) 07:05:39.51ID:???
>>377
お前の小さい脳みそこそギャグかよww
0380NAME IS NULL
垢版 |
2017/03/06(月) 07:28:15.30ID:???
>>378
構文解析にかける時間に比べれば
文字列の処理なんて微々たるものがわからないような猿
0381NAME IS NULL
垢版 |
2017/03/06(月) 12:11:06.08ID:0KbRjlYP
>>377
判定処理はいるだろw
文字がAならAかどうか判定する。

何この低レベルw
0382NAME IS NULL
垢版 |
2017/03/06(月) 12:23:32.62ID:???
小文字混ざってる前提で全て大文字にしてからパースすればいいだけってのは
プログラマーならわかるだろ
0383NAME IS NULL
垢版 |
2017/03/06(月) 12:41:33.78ID:???
>>381
全部大文字にすればよいでしよw
0384NAME IS NULL
垢版 |
2017/03/06(月) 15:24:30.48ID:bDLzF0aS
結局予約語だけ大文字で書けばいいの?
開発効率落ちまくるけどどの参考書もそうしてるよな
0385NAME IS NULL
垢版 |
2017/03/06(月) 15:32:38.74ID:???
コーディング規約ってのがそれぞれのチームなり部署なりにあるだろ?
それに従えば良いだろ。
んで自分一人のものだけなら好き勝手に
0386NAME IS NULL
垢版 |
2017/03/06(月) 15:59:13.62ID:???
そうなんだけどさ、大文字と小文字使い分けるのってすごい面倒なんだよなぁ
玄人の皆さんは使い分けなきゃいけない状況のときどうやって書いてるの?
毎回shift+capslockしてるの?てか列名日本語にするのほんとやめてください
0387NAME IS NULL
垢版 |
2017/03/06(月) 16:09:32.32ID:???
使い捨ては全部小文字
あとで見返すことがあるものは予約後大文字、シフトに指置けばいいべ
0388NAME IS NULL
垢版 |
2017/03/06(月) 16:13:07.82ID:???
>>384
効率落ちまくるって、どんだけクエリ書いてるんだよ
300char/minだとして、大文字小文字意識しても5秒ほどしかかわらんだろ
つまり、1分の差がでるのに3600文字必要
毎日1万字書く奴がいたとしても、せいぜい3分/dayくらいの差だ
0389NAME IS NULL
垢版 |
2017/03/06(月) 19:02:01.27ID:aPuKjXeW
>>388
お前はキーパンチャーかwどんだけキーボードマスターだよw
0390NAME IS NULL
垢版 |
2017/03/06(月) 19:18:44.61ID:???
全部小文字でもいいだろ好きにしろ
ぱっと見てここSQLだなってわかるようにしたいなら大文字にすりゃいいし
動きゃいいんだよ
0391NAME IS NULL
垢版 |
2017/03/07(火) 02:45:55.03ID:???
>>381
大文字にするにあたって元の文字が大文字か小文字か判定する必要はないって話だと思うんだが、
あなたが言うように判定するのは無駄なので判定しないのが普通。
0392NAME IS NULL
垢版 |
2017/03/07(火) 10:30:00.17ID:???
>>388
キーパンチャーなみのタイプ速度で、普通は考えられないような量のクエリを1日にタイプするとしても、
それでも1日あたりの作業低下量は3分程度なんだが、>>384はどんだけタイプしてんだよって話だ

読解力ない奴って、底が知れんわ
0393NAME IS NULL
垢版 |
2017/03/07(火) 12:02:08.35ID:???
そもそもSQL誕生して何十年も経ってるのにいまだにこの議論してんだから
大文字小文字の問題は根深いよな

>>392
タイピング速度の問題ではなくてストレス的な意味の開発効率を言ってると思うぞ>>384
0394NAME IS NULL
垢版 |
2017/03/07(火) 13:44:27.84ID:???
>>393
この程度のコーディングルールでストレスとか、向いてないんじゃねーの?
0395NAME IS NULL
垢版 |
2017/03/07(火) 13:54:22.26ID:???
安価ミスしちゃうそそっかしい人はフォーマッタ使えばいいんじゃないでしょうか。
0396NAME IS NULL
垢版 |
2017/03/07(火) 14:03:09.27ID:???
>>393
> 大文字小文字の問題は根深いよな
根深いっつーか、どっち派もいるというだけでしょ
他言語だっていつまでたっても中括弧の書き方レベルの議論が終わらないし
0397NAME IS NULL
垢版 |
2017/03/07(火) 14:23:20.70ID:???
てか、別に大文字小文字で開発効率が落ちる奴がいても不思議じゃない。
不思議じゃないが、だから何ってはなしで。
俺らには関係ない。
0398NAME IS NULL
垢版 |
2017/03/07(火) 15:50:13.46ID:???
スレチかも知れんがMac使ってるやつはSequel入れとけフリーでこんないいの
なかなかないぞ
0399NAME IS NULL
垢版 |
2017/03/07(火) 16:33:49.67ID:???
大文字小文字もインデントの具合も全てどうでもいいと思ってるが・・・

カンマを行頭に置く奴だけは許せん!!!
0400NAME IS NULL
垢版 |
2017/03/07(火) 17:40:36.93ID:???
俺もこの程度で効率落ちまくるなら、プログラマに向いてないと思うよ
0401NAME IS NULL
垢版 |
2017/03/07(火) 17:52:14.51ID:???
プログラマなら、たとえMISRA-C完全準拠を要求されても、淡々と従うものだ。
0402NAME IS NULL
垢版 |
2017/03/07(火) 18:17:10.46ID:???
>>381
お前がw
このスレでw
一番低レベルだがなwww
0404NAME IS NULL
垢版 |
2017/03/07(火) 23:52:37.76ID:???
俺は逆に面倒だと思う人のほうがプログラマには向いてるとおもうけどな
if so を考えるのって大事だと思うぞコーダーって意味なら向いてないと思うけど
0405NAME IS NULL
垢版 |
2017/03/08(水) 12:54:37.42ID:???
>>404
面倒だと思うのはかまわない

ただ、この程度で効率落ちまくるレベルの奴は、プログラマに向いてないってだけだ
0406NAME IS NULL
垢版 |
2017/03/08(水) 15:50:08.89ID:???
「落ちまくる」のは向き不向きよりも不慣れなだけだろう

向き不向きの話をするなら、大文字で書くことに何の疑問も持たない人の方がプログラマに向いていない
理由があって大文字を選択してるなら良いことだと思うが
0407NAME IS NULL
垢版 |
2017/03/08(水) 16:03:35.29ID:???
マジでうざいわ。
いつまでやってんだ。
0408NAME IS NULL
垢版 |
2017/03/08(水) 16:10:50.92ID:???
>>406
キーワードを大文字で書けくらい、即慣れるだろ
ふつーのプログラマなら、効率が落ちまくったりしません
0409resumi
垢版 |
2017/03/08(水) 17:37:21.53ID:hjh5f++s
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。
0410NAME IS NULL
垢版 |
2017/03/08(水) 17:54:51.71ID:???
この粘着質、どこかで
0411NAME IS NULL
垢版 |
2017/03/08(水) 18:00:24.69ID:???
>>386
> 毎回shift+capslockしてるの?
誰も答えないのでコメントしとくか。

普通はCapsLockなんか使わないでしょ。
Shift推しながらタイプするだけ。
0412NAME IS NULL
垢版 |
2017/03/08(水) 18:11:39.11ID:???
予約語なんて一覧にして各RDBのドキュメントに乗ってんだから
ちょちょいとコピペして整形して正規表現で置き換えりゃいいだろ
0413NAME IS NULL
垢版 |
2017/03/08(水) 19:12:42.88ID:o80qSDDR
でたw正規表現厨w
0414NAME IS NULL
垢版 |
2017/03/08(水) 19:15:55.09ID:???
その正規表現がこちらになります
0415NAME IS NULL
垢版 |
2017/03/08(水) 19:58:12.66ID:???
age半角wはレベル低すぎんだよ
0416NAME IS NULL
垢版 |
2017/03/08(水) 20:37:34.03ID:o80qSDDR
それでは気をとりなおしてwレベル高い正規表現どうぞw
0417NAME IS NULL
垢版 |
2017/03/08(水) 21:24:42.52ID:???
エディタに丸投げするだけなのに
本気で言ってるのかどうなのか・・・
0418NAME IS NULL
垢版 |
2017/03/09(木) 18:52:44.02ID:cT/4yIz6
>>391
何をわけのわからないことを言ってるのか?コンピュータからしたら大文字と小文字のアルファベットは別の文字だぞ。
0419NAME IS NULL
垢版 |
2017/03/09(木) 18:55:38.08ID:cT/4yIz6
初心者が数字列を数値だと言い張ってゆずらないのと同じなのかな?

こういうのは時間の無駄だから関わらない方がいいわ。
0420NAME IS NULL
垢版 |
2017/03/09(木) 19:06:21.65ID:???
全くだな
話がわかってないID:cT/4yIz6 のようなキチガイは構ってはいけない
0421NAME IS NULL
垢版 |
2017/03/09(木) 19:25:54.71ID:l9oI+xHV
いやいくら馬鹿だからってキチガイさすがには言いすぎだろw


さて与太話はこれくらいにして
そろそろ正規表現の話題の戻そうか
0422NAME IS NULL
垢版 |
2017/03/10(金) 06:33:59.01ID:???
>>421
お前も馬鹿でキチガイのようだがw
0423NAME IS NULL
垢版 |
2017/03/10(金) 13:43:59.58ID:???
ぶっちゃけどんなプログラミング言語習得するよりDB極めたほうが金になるよな
業界の中でもDBエンジニアを目指すのが一番おすすめだわ
0424NAME IS NULL
垢版 |
2017/03/10(金) 13:44:11.48ID:???
正規表現、NGにした方がいい?
0425NAME IS NULL
垢版 |
2017/03/10(金) 13:58:27.33ID:???
>>423
クエリだけ書けてもプログラムないと高度な事できないだろ。分析止まりでランニングできない。
0426NAME IS NULL
垢版 |
2017/03/10(金) 14:55:14.16ID:???
>>425
逆にクエリが書けなればダイナミックなプログラムはかけないけどな
0427NAME IS NULL
垢版 |
2017/03/10(金) 14:59:24.06ID:???
>>426
だからどちらかじゃなくて両方必要って話だろ
0429NAME IS NULL
垢版 |
2017/03/10(金) 15:30:00.65ID:???
クエリしか書けないエンジニアなんているの?
0430NAME IS NULL
垢版 |
2017/03/10(金) 19:39:42.24ID:???
正規表現大好き&#128149;
0431NAME IS NULL
垢版 |
2017/03/10(金) 19:42:09.92ID:???
改行考慮や大文字小文字無視するだけでも正規表現使う理由にはなる
正規表現と聞いて脊椎反射するやつはエディタで置換したことないやつ
0432NAME IS NULL
垢版 |
2017/03/10(金) 19:54:04.86ID:kvVonAc4
凄く難しいこと言ってSO
だけど全体的には凄くアタマ悪SO
正規厨って大体SOUL
0433NAME IS NULL
垢版 |
2017/03/10(金) 20:14:25.35ID:???
難しいように聞こえるならお前の頭が悪いのだろう
正規表現は一般的なテキスト処理にも使われるもので
プログラムの中だけで使われるものじゃない
0434NAME IS NULL
垢版 |
2017/03/10(金) 20:46:07.46ID:kvVonAc4
突如何者かに向けて正規教室を始めた正規厨SO FOOL
0435NAME IS NULL
垢版 |
2017/03/11(土) 09:13:34.14ID:???
正規とか言ってる阿呆は派遣か契約なのか?
0436NAME IS NULL
垢版 |
2017/03/11(土) 11:14:03.17ID:???
いいえ、ニートです
0437NAME IS NULL
垢版 |
2017/03/11(土) 11:57:22.36ID:???
正規表現知ってから、もう、文字数数えて
左から何文字目から何文字目でアレを見つけて
文字数数えて次のアレを見つけて文字数数えて
切り取って、みたいなことやらなくなったから
頭が鈍った気がするけど
便利でもう過去には戻れない。
0438NAME IS NULL
垢版 |
2017/03/11(土) 12:24:01.21ID:???
だが正規表現にバグがあった時のことを考えると
怖くて本番業務には使えない
0439NAME IS NULL
垢版 |
2017/03/11(土) 12:38:16.89ID:plFNS0RJ
正規厨ってニートだったのかYO
正規ばかり弄ってないで働けYO
0440NAME IS NULL
垢版 |
2017/03/11(土) 17:49:09.54ID:???
だからなんだよ正規って
頭悪いのか?
0441NAME IS NULL
垢版 |
2017/03/11(土) 21:20:37.60ID:???
え、てか正規表現できないプログラマとかいなくね?
忘れても調べればすぐでてくるし
0442NAME IS NULL
垢版 |
2017/03/11(土) 21:35:22.36ID:???
正規表現ときいたら脊椎反射的に噛みついちゃう非正規おじさんをあんまイジメないでくれる?
0443NAME IS NULL
垢版 |
2017/03/11(土) 21:48:24.19ID:???
>>438
sqlにもバグがあるけど
どう扱うの?
0444NAME IS NULL
垢版 |
2017/03/12(日) 02:22:23.08ID:???
>>443
SQLにバグがあったらメーカーのテストですぐにわかるだろう
正規表現はどれだけテストされているか怪しいものだ
0446NAME IS NULL
垢版 |
2017/03/12(日) 09:32:45.05ID:???
>>445
じゃないと正規場かにできないのね
0448NAME IS NULL
垢版 |
2017/03/12(日) 10:29:45.30ID:???
SQLより正規表現のがテスト大変て本気で言ってるのか
0449NAME IS NULL
垢版 |
2017/03/12(日) 10:36:24.12ID:???
>>411-412当たりが話の元
ファイルにSQL書く時大文字タイプするのはどうするかって話
0451NAME IS NULL
垢版 |
2017/03/12(日) 14:30:19.40ID:???
RDBMSのスレなのに正規化じゃなくて正規表現の話題になってるのが不思議w
0452NAME IS NULL
垢版 |
2017/03/12(日) 14:56:31.76ID:bZc6gV75
>>448
正規表現はそれ自体がわかりにくく、バグの温床。安易な正規表現の使用はよくない。
0453NAME IS NULL
垢版 |
2017/03/12(日) 14:57:14.86ID:bZc6gV75
>>451
RDBでも正規表現を使う関数があるから的外れでもない。
0454NAME IS NULL
垢版 |
2017/03/12(日) 15:11:39.39ID:???
そんな難し複雑な正規表現の話をしてるわけではないだろうに
正規表現ときいて脊椎反射しちゃう正規おじさんがいけないんだよ
0455NAME IS NULL
垢版 |
2017/03/12(日) 18:07:08.16ID:WTgIsk55
>>454
でもオマエ正規厨やROCK!
俺ってSOUL!
低能は馬鹿にするポリシーなんだYO!
0457NAME IS NULL
垢版 |
2017/03/12(日) 19:01:08.82ID:???
>>455
ごめんね正規じゃなかったね
非正規おじさんだったね
早く正規になれるといいね
0460NAME IS NULL
垢版 |
2017/03/13(月) 08:03:56.95ID:???
おじさんは正規表現得意なんじゃね?
秀丸にもあるんでしょ?
0461NAME IS NULL
垢版 |
2017/03/14(火) 12:41:38.04ID:KmvSvp8f
>>460
秀丸はどんどん使われなくなってるぞ。
0462NAME IS NULL
垢版 |
2017/03/14(火) 15:54:17.47ID:???
そろそろ、SQLに関する話題に戻そうよ
0463NAME IS NULL
垢版 |
2017/03/14(火) 19:32:27.53ID:???
正規表現のテストは自信が持てないのに、SQLのテストは完璧に出来るという自信は何処から湧いて出るのか。

怖や怖や。
0464NAME IS NULL
垢版 |
2017/03/14(火) 19:36:53.01ID:VMT6GYOD
>>463
自身が持てないテストなんてテストじゃねえよw
何言っちゃってんの正規厨クンw
0465NAME IS NULL
垢版 |
2017/03/14(火) 19:44:39.02ID:LfWSYHE8
>>463
どんな正規表現を言ってるんだよ?
よほど簡単なものしか想定してないのか。

正規表現はプロ中のプロでも間違うことがあるんだぞ?

だから複雑なものはあまり使われない。ぱっと見、これで合っているかどうかわからないのが原因。
0466NAME IS NULL
垢版 |
2017/03/14(火) 19:51:46.52ID:LfWSYHE8
正規表現は言語、環境によっても方言が強くて面倒
0467NAME IS NULL
垢版 |
2017/03/14(火) 20:07:23.62ID:???
んなことないだろ
だいたいposixかperlか2択
0468NAME IS NULL
垢版 |
2017/03/14(火) 20:28:52.70ID:???
>>465
うえでワーワー言ってる人って、正規表現を書き間違えたことでのバグじゃなくて、仕様通りの動作をしないというバグのことを指しているとおもうよ
0469NAME IS NULL
垢版 |
2017/03/14(火) 20:37:06.86ID:???
ここはデータベース板だって事分かってる?
0470NAME IS NULL
垢版 |
2017/03/14(火) 20:43:01.10ID:???
そりゃ分かってるでしょう
0471NAME IS NULL
垢版 |
2017/03/14(火) 20:47:24.70ID:VMT6GYOD
時と場所をわきまえずに正規自慢したがるのが正規厨なんだYO
0472NAME IS NULL
垢版 |
2017/03/14(火) 21:15:09.82ID:LfWSYHE8
>>471
Oracleも正規表現の関数を大量に追加したものの使ってるプログラムを見たことない。

正規表現の乱用はよくないという結論は十数年前に出てるよな。

Eメールアドレスの形式チェックですら正規表現だけでやろうとすると難しくて昔はどのWebサイトもミスしまくってたな。
0474NAME IS NULL
垢版 |
2017/03/15(水) 00:01:42.17ID:???
>>472
なんでも乱用は良くないものですよ

Eメールアドレスの形式チェック「ですら」
0475NAME IS NULL
垢版 |
2017/03/15(水) 23:12:31.33ID:yFO1cwOX
>>473
正規表現だけでEメールアドレスの文字列があっているかどうかを一発で判定する正規表現を考えればいい。なかなか難しいぞ。
0476NAME IS NULL
垢版 |
2017/03/15(水) 23:13:19.18ID:yFO1cwOX
>>474
日本語が苦手なんですね。
0477NAME IS NULL
垢版 |
2017/03/15(水) 23:28:15.79ID:???
(はは〜ん…コイツさては正規厨だな…)
0478NAME IS NULL
垢版 |
2017/03/15(水) 23:50:53.41ID:yFO1cwOX
語彙って親や育った環境で大差がつくんだよな。知らない、あまりその人が聞かない言葉や言い回し見たり、聞いたりすると言葉がおかしいなどと批判してくる。本人が無知なだけなのに。
0479NAME IS NULL
垢版 |
2017/03/16(木) 02:43:53.69ID:???
3日連投しましょう
0480NAME IS NULL
垢版 |
2017/03/26(日) 06:46:08.94ID:???
SQLの書き方で質問ですが、
AND句は行の先頭に書くか、行の末尾に書くか、どちらが一般的でしょうか?

(例1)
WHERE
 A = 1 AND
 B = 1

(例2)
WHERE
 A = 1
 AND B = 1

SQLの書き方ガイドラインのようなものがあれば教えてください。
よろしくお願いします。
0482NAME IS NULL
垢版 |
2017/03/26(日) 10:40:33.20ID:uME5dCZb
>>480
そういう決まりはない。プログラミング言語と同じで改行せずにANDがあれば条件の続きがあるとわかりやすいが、コメントアウトしにくい。

selectの選択列のカンマ位置と同じようなもの。
0483NAME IS NULL
垢版 |
2017/03/26(日) 12:01:47.23ID:???
うちは
where 1 = 1
and a = 1
and b = 1
0484NAME IS NULL
垢版 |
2017/03/26(日) 13:03:58.55ID:???
UNIONやサブクエリ入るとまたちょっと変わるけど基本的に
select tableの選択セクション whereの条件セクション orderとかのその他セクション
この3つで分ける程度だな
0486NAME IS NULL
垢版 |
2017/03/29(水) 18:16:55.34ID:XE4RKzOb
技術士の全部門をコンプリート vs 東大理三首席現役合格 vs 旧司法試験首席一発合格

どれが一番凄い?
0487NAME IS NULL
垢版 |
2017/03/30(木) 05:17:15.45ID:???
>>481, 482, 483, 484
返信が遅くなってしまいすみません。
レスありがとうございました。

>selectの選択列のカンマ位置と同じようなもの。

なるほどそうですか。
例1も例2も好きなほうでよい、ということですね。

(例1)
  SELECT
   A, B, C,
   D

(例2)
  SELECT
   A, B, C
   , D

勉強になりました。
0488NAME IS NULL
垢版 |
2017/03/30(木) 08:09:41.36ID:???
条件の内容を最初に見たいからandは後ろにつけてる。
前にあると地味にイラっとする。
where
a=1 and
b=2
0489NAME IS NULL
垢版 |
2017/03/31(金) 15:35:06.33ID:???
>>486
東大理三首席現役合格
正真正銘期間限定延期不可一発勝負なのはこれだけ
0491NAME IS NULL
垢版 |
2017/04/01(土) 21:59:51.47ID:O38ZNBFt
カスタマーエンジニアってどうですか?収入面とか労働面で。
楽ですか?それとも超キツイですか?
0493NAME IS NULL
垢版 |
2017/04/09(日) 19:51:01.20ID:???
このどうですか厨は、いろんな板で荒らしているだろ
相手せず、スルーしようよ
0494NAME IS NULL
垢版 |
2017/04/13(木) 18:25:57.43ID:n8gSS6s1
C#からsqliteを使っているんですが、データベースの設計方法がわかりません、第2正規化以降って必要ですか?
必要なデータを洗い出してそこから正規化していけばいいんでしょうか?もしある程度レコードが増えた状態で新たに項目追加したいとなったらどうすればいいんでしょうか?
0495NAME IS NULL
垢版 |
2017/04/13(木) 18:43:18.24ID:???
そりゃ設計のスレだな
追加したカラムに既存のレコードも全部埋まるなら追加でいいし
埋まらないなら別に作るべきでしょ
0496NAME IS NULL
垢版 |
2017/04/13(木) 18:44:45.99ID:???
>>494
本買って読んだ方が手っ取り早い
0497NAME IS NULL
垢版 |
2017/04/13(木) 21:45:28.08ID:???
>>495
すいません
では設計スレのほうにいきます
0498NAME IS NULL
垢版 |
2017/04/20(木) 02:03:12.33ID:???
mybatis使っててDBに定義されたBLOB型のデータをバイト配列として取得する方法ってありますか?
0499NAME IS NULL
垢版 |
2017/04/20(木) 03:51:44.77ID:3sXeWAt/
>>498
プログラム板で聞いた方がいい。
0500NAME IS NULL
垢版 |
2017/04/20(木) 03:56:00.44ID:3sXeWAt/
>>498
調べたらそれ普通じゃねえか。すこしは調べろよ。
0501ich1
垢版 |
2017/04/21(金) 16:27:47.00ID:R/eXxgbc
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。
0502NAME IS NULL
垢版 |
2017/04/21(金) 23:52:26.43ID:???
アホかと思われるかも知れませんが、
こうするとエロラーになります。
何か良い方法ないですか?

Select *
From テーブル2 ←──┐
Union All          │
Select *          │
From (サブクエリ) As テーブル2
0503NAME IS NULL
垢版 |
2017/04/21(金) 23:54:28.65ID:fJADFuER
>>502
ネタですか?

名前がぶつかっているのだから、あたりまえでしょうがw
0504NAME IS NULL
垢版 |
2017/04/22(土) 00:02:49.50ID:???
>>503
すいません、駄目なのはわかってて、
こういうのがやりたい時はどう書くのかなと。
0505NAME IS NULL
垢版 |
2017/04/22(土) 00:10:42.55ID:bI/4AwC2
>>504
なぜそうしなければいけないのか?
0506NAME IS NULL
垢版 |
2017/04/22(土) 00:13:53.98ID:???
どういうことをしたいのか質問内容を具体的に書かないと伝わらないぞ
0507NAME IS NULL
垢版 |
2017/04/22(土) 12:23:35.41ID:???
すごく具体的な質問だと思うけどどこが分からないのか?
クエリの結果を二重にしたいだけだろ
0509NAME IS NULL
垢版 |
2017/04/22(土) 12:33:49.71ID:???
サブクエリーを使いたいと言うことかもしれないし、
単一テーブルから二通りの選択をして結果を合算したいのかもしれないし
0510NAME IS NULL
垢版 |
2017/04/22(土) 12:55:02.60ID:???
なぜ聞かれてもいない事を深読みして答えようとするのか?
どうにかして自分が知ってる事に結びつけようとしてるだけだろお前ら
0511NAME IS NULL
垢版 |
2017/04/22(土) 13:04:00.14ID:???
それも、妄想だろうが
0513NAME IS NULL
垢版 |
2017/04/22(土) 15:11:11.87ID:???
>>502
unionはテーブル名見てるんじゃなくselectの中身見てるだけ
だから別名付けてどうぞ
0514NAME IS NULL
垢版 |
2017/04/22(土) 15:33:24.15ID:bI/4AwC2
>>513
unionを同じテーブルとでしか使えないと思い込んでると仮定したわけか?
0516NAME IS NULL
垢版 |
2017/04/23(日) 03:28:24.12ID:???
>>505
>>506
こういう嫌がらせみたいな表があるんですよ。

商品名  単価1 単価2 単価3
もょもと 100  200  300
すけさん 120
アイリン 500  990

これをUnionで縦に繋げれば綺麗な表になりますが、
普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

Select 商品 単価1 From 元テーブル
Select 商品 単価2 From 1回目の抽出結果
Select 商品 単価3 From 2回目の抽出結果

>>513
別名でどう紐づけるんですか?
0517NAME IS NULL
垢版 |
2017/04/23(日) 03:46:27.99ID:???
あれ?
もしかして、Union Allじゃなくて、
単にUnionしたものに対して検索した方が速かったりします?
0518NAME IS NULL
垢版 |
2017/04/23(日) 05:19:54.61ID:7gvObldM
やりたいことがわかりそうでわからない。
0519NAME IS NULL
垢版 |
2017/04/23(日) 05:23:12.48ID:7gvObldM
>>517
結局、何がしたいわけ?
0520NAME IS NULL
垢版 |
2017/04/23(日) 09:38:17.86ID:???
>>516
綺麗な表ってなに?
またなんでそういう要求が
でる背景はなに?
0521NAME IS NULL
垢版 |
2017/04/23(日) 09:50:21.14ID:???
速度が目的なら普通に検索して単価1-3の分離はクライアント側でやるのが現実的だろうね。
あるいは単価1-3をUNION ALLしたサブクエリから抽出する。賢いDBMSなら最適化してくれるかもしれない。
0522NAME IS NULL
垢版 |
2017/04/23(日) 09:56:38.73ID:???
>>519
検索と表の整形です。

>>520
上の例では省略しましたが、
実際は、かなり横に長いんです。

商品名 単価1 単価2 単価3 ・・・ 単価50

おもいっきり横にスクロールしないと全体を見渡せない、
嫌がらせみたない表でしょう?
0523NAME IS NULL
垢版 |
2017/04/23(日) 10:52:31.24ID:???
>>522
あなたのいう綺麗な表とは?
縦にしたいの?


『おもいっきり縦にスクロールしないと全体を見渡せない、
嫌がらせみたない表。』

を作りたいの?
何が便利になるの?
0524NAME IS NULL
垢版 |
2017/04/23(日) 11:01:55.37ID:???
union allで列分繋げればできるよ
0525NAME IS NULL
垢版 |
2017/04/23(日) 11:12:44.52ID:???
質問返ししてる奴いいかげんウザい
0528NAME IS NULL
垢版 |
2017/04/23(日) 11:50:19.03ID:???
商品名を抽出したいのか
商品名に対するいずれかの単価を抽出したいのか
商品名に対する全ての単価を抽出したいのか

それにしても、単価1から単価50まで並べるというのは苦痛だ
そういうテーブル定義作った奴を縛り首にした方が後々良い結果がでる
0529NAME IS NULL
垢版 |
2017/04/23(日) 13:24:51.53ID:???
>>523
データベースって普通縦なんじゃ・・・。
0531NAME IS NULL
垢版 |
2017/04/23(日) 14:42:39.73ID:???
>>523
縦にしたいです。
うちの会社のマウスホイールは、
全部縦に回るので、縦の方が便利なんです。

この表作った人のは、横に回るのかも知れませんが。

>>528
>商品名に対する全ての単価を抽出したいのか

それです。
0532NAME IS NULL
垢版 |
2017/04/23(日) 14:47:27.11ID:???
共通表式 でぐぐれば終わりな気がする
0534NAME IS NULL
垢版 |
2017/04/23(日) 17:40:50.51ID:???
>単価50

この先、まだまだ増えたりしてな w
0535NAME IS NULL
垢版 |
2017/04/23(日) 17:47:02.05ID:???
エクセルのつもりで追加するからたまらんな
0536NAME IS NULL
垢版 |
2017/04/23(日) 22:26:54.47ID:???
一つの商品に50種類もの単価が付けられると言うのは、そういう理由があるわけでしょ?
例えば、一つの商品に50個のパーツが必要でそれぞれに単価があるとか
あるいは50の地域での販売単価とか
そういう小項目も合わせて表示しないと、
意味不明の50行の単価出力にならないかな?
0537NAME IS NULL
垢版 |
2017/04/24(月) 01:18:15.41ID:???
おれなら実テーブルを変更して、元テーブルと同じ形のビューつくるけどな
0538NAME IS NULL
垢版 |
2017/04/24(月) 10:46:17.61ID:???
>>503
> 名前がぶつかっているのだから、あたりまえでしょうがw

>>513
> だから別名付けてどうぞ

なんか、同名だと駄目で当然的な流れだが、PostgreSQLではエラーにはならない。
エラーになるのが普通なのか?
0540NAME IS NULL
垢版 |
2017/04/24(月) 11:50:05.50ID:???
>>539
> 普通とは?
その疑問の意味がわからない。
0541NAME IS NULL
垢版 |
2017/04/24(月) 12:00:49.79ID:???
>>540
その文脈で普通を
具体的に表現して。
0542NAME IS NULL
垢版 |
2017/04/24(月) 12:40:31.78ID:Ng2xnlDE
インラインビューの別名に実テーブル名を使う心理がわからない。混乱するだけだと思うが。
0543NAME IS NULL
垢版 |
2017/04/24(月) 12:40:38.23ID:???
もはや後に退けなくなった意地の質問返し
不毛である
0544NAME IS NULL
垢版 |
2017/04/24(月) 12:48:45.79ID:???
>>541
え?いやだからPostgreSQL以外のRDBMSじゃエラーになるのが普通なのかって意味だけど?
0546NAME IS NULL
垢版 |
2017/04/24(月) 13:01:37.97ID:???
>>545
そうなんだ。
いや、>>503に誰もコメントしないから、エラーになるのが普通なのかと、ちょっと心配したし。
0547NAME IS NULL
垢版 |
2017/04/24(月) 13:04:55.00ID:???
>>542
ひょっとして、PostgreSQL以外では以下はエラーになるのが普通なの?
select * from (select a, b from hoge) as hoge
まぁ、俺も実在のテーブル名を別名につけようとは思わないんだが。
0548NAME IS NULL
垢版 |
2017/04/24(月) 13:07:17.98ID:???
>>547
心配するな、俺の知ってる範囲ではそれはエラーにならない
0549NAME IS NULL
垢版 |
2017/04/24(月) 13:24:49.68ID:???
別名に関して誤解してる奴が多そうだな
0550NAME IS NULL
垢版 |
2017/04/24(月) 14:45:32.03ID:???
>これをUnionで縦に繋げれば綺麗な表になりますが、
>普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

select一回で全項目を取得して、後はアプリにやらせるとか
0551NAME IS NULL
垢版 |
2017/04/24(月) 14:54:59.09ID:???
なんかよくわからんが、case whenでいけるかもよ?
データ例と期待する取得結果を書けば、ちゃんとした答えが返るかも
いまのとこ、何をやりたいのかいまいちわからん
0553NAME IS NULL
垢版 |
2017/04/24(月) 15:35:32.59ID:???
実体が横持ちになっているのが気に入らないが、とりあえず縦持ちのように参照するためにUNION ALLを行った。
しかし縦を横にするクエリはまだ知らない。

というところなんじゃないかな。

そのクエリがわかれば、実体を縦持ちにするのもやぶさかではないみたいな。そんな感じがする。
0554NAME IS NULL
垢版 |
2017/04/24(月) 15:36:53.40ID:???
流れがおかしくなったのは >>503 が照れ隠しのために話を流したかっただけだと思う。
0555NAME IS NULL
垢版 |
2017/04/24(月) 15:54:00.93ID:???
まぁ、価格カラムが50個あるので50個のクエリをunionで繋げました、よりは、クライアントで頑張る方がいいと思う
縦横変換もクライアントで頑張った方が簡単かつ検索コストも低そう
0556NAME IS NULL
垢版 |
2017/04/24(月) 17:59:56.67ID:???
まず価格カラムが50個もあるのが設計として妥当か考えるべきだがな

相関名の有効範囲がUNIONを超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ?
0557NAME IS NULL
垢版 |
2017/04/24(月) 18:18:50.51ID:???
「だっけ?」の使い方よ
0559NAME IS NULL
垢版 |
2017/04/24(月) 18:35:58.02ID:Ng2xnlDE
だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか?
0560NAME IS NULL
垢版 |
2017/04/24(月) 21:05:20.45ID:???
カラムに関して誤解してる奴が多そうだな
0562NAME IS NULL
垢版 |
2017/05/07(日) 00:12:31.50ID:???
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。
0564NAME IS NULL
垢版 |
2017/05/07(日) 03:31:50.86ID:???
>>563
どうりで出てこないわけですわ。板が違うとは。
ありがとうございます。
0567NAME IS NULL
垢版 |
2017/05/10(水) 20:02:08.20ID:???
社員
社員ID、名前

社員情報
社員ID、血液型、生年月日、性別、身長

身長170cm以上の社員の名前を取得するSQLってどう書けばいいのでしょうか?

SELECT 社員.名前
FROM 社員情報
WHERE 社員情報.身長 >= 170

これで出てきますか?
0569NAME IS NULL
垢版 |
2017/05/10(水) 20:32:12.08ID:f4kloMSM
社員情報に名前入れろや
お前は名無しの社員ちゃうやろアホか
0570NAME IS NULL
垢版 |
2017/05/10(水) 22:05:06.36ID:???
システムがデータベースを使っているのでどうにもできないのです
ざっくり見た感じですが、こんな感じになっていたと思います
0571NAME IS NULL
垢版 |
2017/05/10(水) 22:23:54.78ID:???
ざっくり見ただけで俺に聞くなよ失礼な人だな
0572NAME IS NULL
垢版 |
2017/05/10(水) 22:41:53.38ID:???
失礼しました。やはり方法はないんでしょうか?
0573NAME IS NULL
垢版 |
2017/05/10(水) 23:00:43.24ID:???
INNER JOINすれば済む話では
0574NAME IS NULL
垢版 |
2017/05/10(水) 23:27:46.64ID:???
>>572
怖くて教えられない
なぜSQLを知らない人が仕事用のデータベースをいじろうとしているのか
0575NAME IS NULL
垢版 |
2017/05/10(水) 23:41:35.27ID:???
sqlなんて基本以来10年近くいじってないワイが適当回答すると
SELECT 社員.名前 FROM 社員情報 WHERE 社員.ID IN (SELECT 社員情報.社員ID FROM 社員情報 WHERE 社員情報.身長 >= 170)
0576NAME IS NULL
垢版 |
2017/05/11(木) 00:41:42.41ID:???
>>567
こうかな?

SELECT 社員.名前
FROM 社員, 社員情報
WHERE 社員情報.身長 >= 170 AND
社員.社員ID = 社員情報.社員ID
0577NAME IS NULL
垢版 |
2017/05/11(木) 19:53:55.21ID:???
>>567
社員IDで紐付いてるとかを勝手に想定してくれる訳じゃないので指定してやらないとな

SELECT 社員.名前
FROM 社員情報
INNER JOIN 社員 ON 社員情報.社員ID = 社員.社員ID
WHERE 社員情報.身長 >= 170

>>569
機微な情報は別テーブルとか普通にあるだろ
0578NAME IS NULL
垢版 |
2017/05/11(木) 22:09:00.58ID:kTC/q0g8
>>577
機微な情報は別テーブルとかないし
別テーブルにする意味もないし
そもそも社員の名前は機微な情報ではない

まあ、お前のような多重に勘違いした独り善がりの馬鹿によって作られた
>>567のような出来損ないのスキーマはたまに見かける

あ、勘違いしやすいみたいだから一応断っておくけど
これ褒めてるんじゃないからねw
0579NAME IS NULL
垢版 |
2017/05/11(木) 22:57:42.62ID:???
 
一応書いておくけど、

ここは初心者スレ
0580NAME IS NULL
垢版 |
2017/05/11(木) 23:30:48.76ID:???
大雑把な性格の俺的には、こうかな?

SELECT *
FROM *
LEFT JOIN *
ON * = *
0581NAME IS NULL
垢版 |
2017/05/12(金) 04:58:07.76ID:???
>>578
> そもそも社員の名前は機微な情報ではない
ここまでバカだとは...
機微な情報の意味わかってないだろ w
0582NAME IS NULL
垢版 |
2017/05/12(金) 08:00:05.76ID:???
>>581
もう一つ勘違いしてるみたいだけど
2ちゃんだって素直にありがとうって言ってもいいんだからね
0583NAME IS NULL
垢版 |
2017/05/12(金) 08:29:18.99ID:???
ありがとう2ch
>>578 みたいなバカがいるってことを教えてくれて

これでいいかな w
0584NAME IS NULL
垢版 |
2017/05/12(金) 10:27:51.21ID:???
>>581
機微な個人情報 JISQ15001:2006

・思想,信条又は宗教に関する事項
・人種,民族,門地,本籍地(所在都道府県に関する情報を除く。),身体・精神障害,犯罪歴その他社会的差別の原因となる事項
・勤労者の団結権,団体交渉その他団体行動の行為に関する事項
・集団示威行為への参加,請願権の行使その他の政治的権利の行使に関する事項
・保健医療又は性生活に関する事項
0585NAME IS NULL
垢版 |
2017/05/12(金) 10:38:02.89ID:???
俺の中では「普通にある」
俺の中ではな
0586NAME IS NULL
垢版 |
2017/05/12(金) 11:55:26.59ID:???
誰のマウンティングが決まるんか
興味深いw
0587NAME IS NULL
垢版 |
2017/05/12(金) 12:27:50.14ID:???
>>584
それもそうだけど
>>581はそもそも社員テーブルに社員名がない事の理不尽さに気がついていない

馬鹿がその視野の狭さ故に犯す誤りの典型だねw
0588NAME IS NULL
垢版 |
2017/05/12(金) 12:54:11.14ID:???
マウンティングとかアホなワードがバズったおかげで、>>586みたいな馬鹿が出てくるんだよ
0589NAME IS NULL
垢版 |
2017/05/12(金) 13:09:41.44ID:???
>>567
匿名かが簡単にできる、良いスキーマ
0590NAME IS NULL
垢版 |
2017/05/12(金) 15:41:27.94ID:???
お前わかってないだろ <− 根拠のないマウント
0591NAME IS NULL
垢版 |
2017/05/12(金) 18:40:02.74ID:???
>>578
> 機微な情報は別テーブルとかないし
いや、あると思うよ。

> 別テーブルにする意味もないし
異なる読み取り権限を設定できる。
0592NAME IS NULL
垢版 |
2017/05/12(金) 19:54:33.25ID:???
機微な情報で氏名とか言い出すアホがいて笑える
どう見ても
> 社員情報
> 社員ID、血液型、生年月日、性別、身長
の方だろ
0593NAME IS NULL
垢版 |
2017/05/12(金) 21:23:59.30ID:???
名前は普通に公開されている情報だと思う
0594NAME IS NULL
垢版 |
2017/05/12(金) 22:16:38.19ID:???
schema.ini作るの面倒なんだけど、何とかならん?
テキストファイルにはIMEX=1も効かないし。
0596NAME IS NULL
垢版 |
2017/05/14(日) 16:37:12.49ID:TZtMkQGv
すみません、質問よろしいでしょうか

SELECT name,max(no)
from test;

これがエラーになるんですが何がいけないんでしょう?
noの最大値を持つ行のnameが知りたいだけなんですが……
0597NAME IS NULL
垢版 |
2017/05/14(日) 17:21:20.77ID:???
SELECT name, no FROM test WHERE no = (SELECT max(no) FROM test)

こうかな
0598NAME IS NULL
垢版 |
2017/05/14(日) 21:10:45.84ID:sz1S3gQK
>>596
group by name

を付ける
0599NAME IS NULL
垢版 |
2017/05/15(月) 11:10:24.32ID:???
>>597さんのがまさに求めていたものでした!
whereかhavingで迷ってたんですがwhereだったんですね!
>>598さんも本当にありがとうございました!
0600悪質オンラインショップ
垢版 |
2017/05/15(月) 13:56:08.35ID:YIXunVhi
サイズ違いの商品を送り 返品交換できない 悪質商法 ****E  
   
サイズ違いの商品を送り 返品交換できない 悪質商法 B**

悪質オンラインショップ



担当者が悪質か

2回目のでんわたんとう窓口は すりかえようで いみふにごまkして 

----------------------------------
**** *** オンラインショップのアイテムは独自の方法により採寸しておりますので、
全て実際の商品を計測した実寸サイズとなっております。
ご注文いただいております商品サイズは、正しいものでございます。

誠に恐れ入りますが、サイズが合わない、イメージと異なるといったご理由での
ご購入商品の返品・交換はお断りさせていただいております。

お客様のご希望にそう事が出来ず誠に申し訳ございませんが、
何卒ご了承の程よろしくお願い申し上げます。

----------------------------------

24いんちって Mですか? WEBの説明と実際の商品が違う
0602NAME IS NULL
垢版 |
2017/05/15(月) 14:13:01.96ID:YIXunVhi
ろせぶd
0604NAME IS NULL
垢版 |
2017/05/15(月) 22:04:09.83ID:???
今の会社があまりにもくだらなくて転職のためSQL覚えたい
今はExcelで簡単なVBA書いてる
独学でもどこかにまず入れるだろうか…
それとPostgreSQLとMySQLとどちらがいいのか教えてください
0605NAME IS NULL
垢版 |
2017/05/15(月) 22:20:38.67ID:???
>>604
安心して
いま四種類同時に使ってるから
0606NAME IS NULL
垢版 |
2017/05/15(月) 22:22:08.36ID:???
4種類、じゃ全部視野に入れます
4つ教えてください
0607NAME IS NULL
垢版 |
2017/05/15(月) 22:42:51.61ID:???
標準SQLを覚えるならOracle Express Editionを入れて
alter session set flagger=entry; とか
0609NAME IS NULL
垢版 |
2017/05/15(月) 22:55:33.47ID:???
DB2も入れてやれ
Express-Cっていう無償のエディションもあるぞ
0610NAME IS NULL
垢版 |
2017/05/15(月) 23:16:49.66ID:???
>>607>>608>>609
ありがとうございます!
もうVlookupひとつしか使えない人たちに便利屋扱いされたうえに勝手な都合でくだらない作業詰め込まれるのはゴメンです
最初から綺麗に無駄なく作っておけばいいのに…
でもそれを更に汚くしたのは短期で来た素人自称プログラマ
VBAばかり走らせて荒っぽい処理してエラー残骸があちこちあったり重複ばかりのファイルを量産してった
プログラム覚えてもああいう仕事は絶対したくないと思う
取っ掛かりとしてSQL覚えてその次Pythonとかも覚えたいです
絶対今のところ抜け出してやる
0613NAME IS NULL
垢版 |
2017/05/16(火) 17:20:38.68ID:zTCyNjTh
すいません、質問させてください。
mySQLとSequel Proを使ってテーブルまで作成しています。

レコード登録時に、2つのIDをくっつけて
3つめのIDをSQL内で自動生成したいのですが、
何か効率的な方法はありますでしょうか。

ID1: 100(手入力)
ID2: 101(手入力)

ID3: 100101(自動生成)

データ型はいずれもINTで設定しております。
よろしくお願いします。
0614NAME IS NULL
垢版 |
2017/05/16(火) 17:56:29.93ID:???
>>613
それ、2行登録したら1行自動生成するってこと?
0615NAME IS NULL
垢版 |
2017/05/16(火) 18:36:37.93ID:+kwvKlmq
>>613
行列、列行なのかわからない聞き方だが、それが列、カラムだと想定すると、トリガーでも作らないとできないだろうな。

同じレコードのカラムから導出したデータを別カラムで持つのも馬鹿っぽい。

しかも数値型を連結するなら、いったん文字型に変換しないといけない。

なんでそんなことをしたいのか。ID3なんてビューを作ってみせればいいんじゃないの?
0616NAME IS NULL
垢版 |
2017/05/16(火) 18:56:41.08ID:zTCyNjTh
>>614
>>615
すいません、DBわかってなくて失礼しました。

ID1 ID2 ID3 name
100 101 100101 hoge
101 201 101201 fuga

ID1とID2を繋げて、ID3を生成したかったです。
プライマリキーとは別に、識別用としてのユニークなIDが必要なので。
単純に繋げるには、文字列でやらないとダメみたいですね。
ありがとうございます。
0617NAME IS NULL
垢版 |
2017/05/16(火) 18:57:13.28ID:???
ID2が2桁の時どうするの?
ID1と2と3は同じレコードのカラムなの?
手入力ってINSERT文書くの?
0618NAME IS NULL
垢版 |
2017/05/16(火) 18:59:58.53ID:???
lpad()で0埋めしてcontat で連結して castで数値にする手もあるけど
実行時に必要ならビューでいいよね
0619NAME IS NULL
垢版 |
2017/05/16(火) 19:14:46.64ID:zTCyNjTh
>>617
ID1, 2は3桁のものしか用意しないので基本的には問題ないかと。
すべて同じレコードのカラムですね。
先に手入力と書きましたが、実際はほぼクライアントツールの
インポート経由で登録になります。

>>618
ビューってのがあるんですね、調べてみます。

ありがとうございます。
0620NAME IS NULL
垢版 |
2017/05/16(火) 23:30:43.64ID:K44u4O+q
>>619
3桁で計算もしないなら、データ型が数値型なのは変だよ。
0621NAME IS NULL
垢版 |
2017/05/17(水) 06:52:26.40ID:???
>>620
お前の根拠もない意見なんて聞いてねえから
0622NAME IS NULL
垢版 |
2017/05/17(水) 11:53:42.80ID:GIMFSdsg
>>621
初心者は数字は数値と思い込むのはよくあることだろ。
0623NAME IS NULL
垢版 |
2017/05/17(水) 12:21:15.28ID:???
なんの禅問答やそれ
0624NAME IS NULL
垢版 |
2017/05/17(水) 12:26:07.45ID:???
何でこんなに質問外の話を夢中になって始めるか、理解出来ない
0625NAME IS NULL
垢版 |
2017/05/17(水) 12:33:06.84ID:???
>>624
初心者は質問内は質問外と思い込むのはよくあることだろ。
0626NAME IS NULL
垢版 |
2017/05/17(水) 21:02:17.08ID:???
>>619
どちらも数値で桁数が3桁固定なら、ID1 * 1000 + ID2でどうだろうか
0627NAME IS NULL
垢版 |
2017/05/18(木) 10:55:50.15ID:???
number(string(id1) || string(id2))
0628NAME IS NULL
垢版 |
2017/05/20(土) 07:59:43.67ID:Y78/Agfu
insert時かselect時に導出すればいいようなものをなんで別カラムで持ちたがるのか、理由をまったく言わないからなw
0629NAME IS NULL
垢版 |
2017/05/21(日) 00:12:32.34ID:???
新ギャグ考えたので聞いてください。

ななこSQL
0630NAME IS NULL
垢版 |
2017/05/21(日) 12:07:06.78ID:oc3Ojy/D
>>629
おっさん乙
0631NAME IS NULL
垢版 |
2017/05/21(日) 19:24:12.15ID:9z61e5/E
何がギャグなのか、誰か解説頼む
0632NAME IS NULL
垢版 |
2017/05/21(日) 19:31:42.54ID:oc3Ojy/D
>>631
ななこSOS
0633NAME IS NULL
垢版 |
2017/05/21(日) 23:20:12.41ID:???
マジレスしてくれた人、ありがとう

うううむ
0634NAME IS NULL
垢版 |
2017/05/22(月) 22:48:44.88ID:???
SELECT column1,column2,column3
FROM table123
WHERE column1 like '%hoge%' OR column2 like '%hoge%' OR column3 like '%hoge%'

こういうクエリがあるんですが
column1〜3で2つのキーワードのAND検索をしたい場合どう書けばいいのでしょうか?

SELECT column1,column2,column3
FROM table123
WHERE (column1 like '%hoge%' AND column1 like '%drz%')
OR (column2 like '%hoge%' AND column2 like '%drz%')
OR (column3 like '%hoge%' AND column3 like '%drz%')
以下のように書いたのですが検索できませんでした
またもっとシンプルに書く方法があれば教えてください
0635NAME IS NULL
垢版 |
2017/05/23(火) 11:32:21.57ID:???
そもそも
>(column1 like '%hoge%' AND column1 like '%drz%')
同じc1カラムにhogeとdrzの両方があるもの、というのはあってるの?
0636NAME IS NULL
垢版 |
2017/05/23(火) 12:27:04.39ID:???
失礼しました、よく考えたら違いました
column1〜3でhoge、drzとあればいいんです
column1にhogeとあってcolumn2もしくは3にdrzとあるものを抽出したいのです

WHERE ((column1 like '%hoge%' OR column1 like '%drz%') AND (column2 like '%hoge%' OR column2 like '%drz%'))
OR ((column1 like '%hoge%' OR column1 like '%drz%') AND (column3 like '%hoge%' OR column3 like '%drz%'))
((column1 like '%hoge%' OR column1 like '%drz%') OR (column2 like '%hoge%' OR column2 like '%drz%'))
すごく長いですがこんな感じなのでしょうか?
もっと綺麗にかけないのでしょうか?
0637NAME IS NULL
垢版 |
2017/05/23(火) 12:29:44.29ID:???
RDBMS何?
正規表現使えるやつならかなり短くできるけど、、
標準でもなんとかなるかな、長くてまだよく見てないw
0638NAME IS NULL
垢版 |
2017/05/23(火) 12:34:54.13ID:???
まだやりたいこと読み切ってるわけじゃないが
ANDの部分をサブクエリにすれば同じ検索を2回書かなくて済みそうだね
0639NAME IS NULL
垢版 |
2017/05/23(火) 13:50:09.05ID:???
>>636
それだとhogeしかない場合でもマッチしてしまうんじゃないか?
0640NAME IS NULL
垢版 |
2017/05/23(火) 18:50:28.38ID:???
 where column1 || column2 || column3 like '%hoge%'
 and column1 || column2 || column3 like '%drz%'
でいいと思う(|| はDBごとに適切な文字列連結演算子に読み替えて)

部分一致じゃあどのみち普通のインデックスは使えないし
速度を出したいならちゃんとした全文検索機能のあるDBを使うべき
0641NAME IS NULL
垢版 |
2017/05/23(火) 20:05:04.58ID:???
>>634
WHERE column1 + ',' + column2 + ',' + column3 like '%hoge%' and column1 + ',' + column2 + ',' + column3 like '%drz%'
0642NAME IS NULL
垢版 |
2017/05/23(火) 20:07:29.14ID:???
>>640
それ column1 = 'ho', columu2 = 'ged', column3 = 'rz' でヒットしちゃうぞ
0643NAME IS NULL
垢版 |
2017/05/23(火) 20:11:47.84ID:???
>>642
連結する時に適当なセパレータ文字を挟めばいいやん。
0644NAME IS NULL
垢版 |
2017/05/23(火) 22:05:46.88ID:???
>>636
そういうもの。
対象のカラムやキーワードの数が変わっても困らないような動的クエリの仕組みに頭を使った方がいい。
0645NAME IS NULL
垢版 |
2017/05/23(火) 22:19:24.15ID:zLCGMc7G
>>644
そもそもデータモデルがおかしいだろw
0646NAME IS NULL
垢版 |
2017/05/23(火) 23:28:42.12ID:???
もしcolumn1/2/3が相互に交換可能なのだとしたら第一正規形ではないことになるが、
>>636だけからはデータモデルがおかしいと断言はできんだろう。
0647NAME IS NULL
垢版 |
2017/05/24(水) 05:27:57.36ID:LjZe7sN5
no existか積集合演算子でできるが、このSELECT文がメインだったらデータモデルがおかしい。
0648NAME IS NULL
垢版 |
2017/05/24(水) 06:45:47.07ID:???
データモデル厨は要らんよ
まあケチ付けたいだけなんだろうけど
0649NAME IS NULL
垢版 |
2017/05/24(水) 19:01:22.36ID:???
フィールドを>>640みたいに|| で文字列連結するのって、内部で何が起こってるんですか?
ORより速いんですかね?
ORより積極的に使った方がいいですか?
0651NAME IS NULL
垢版 |
2017/05/24(水) 22:34:09.99ID:???
内部で何が起こってるのかを気にする必要がないのがSQLの良いところやで
実行速度が気になるんだったら自分で目的に最適化したDBを作ったほうが速い
0652NAME IS NULL
垢版 |
2017/05/24(水) 23:07:44.65ID:???
まあそれは建前であって実際のところは内部動作もある程度知っていないと
使い物にならないことも多いからねえ
自動チューニング的な機能があったとしても
その機能自体がどのように動くのか知らないとやっぱり上手く使えなかったり
0653NAME IS NULL
垢版 |
2017/05/24(水) 23:09:38.05ID:???
>>641
返信遅くなってしまいすいません
文字列を連結させてればいいんですね、やってみます
0654NAME IS NULL
垢版 |
2017/05/25(木) 15:59:00.46ID:v+Ze25qa
>>649
内部ではいったんそういう表が作られて、それを検索している。
0655NAME IS NULL
垢版 |
2017/05/25(木) 16:53:17.38ID:???
>>649
それぞれのカラムにインデックスがある場合。

まず、文字列を連結するとインデックスは使われません。
ORを使うと、全件検索(テーブルスキャン)よりもインデックスを使う方が速いと判断されれば
インデックスが使われます。

なので、ORが使えるならORを使うのがよいです。

さらに言うと、完全一致検索(hoge = 'aaa')と前方一致検索(hoge like 'aaa%')はインデックスが
使われますが、それ以外の場合(hoge = 'aaa%', hoge = '%aaa%')では、普通はインデックスは
使われません。(データベースの種類によっては、特殊なインデックスを作れるものもある)
0656NAME IS NULL
垢版 |
2017/05/25(木) 17:01:24.94ID:v+Ze25qa
変なのがわいた
0658NAME IS NULL
垢版 |
2017/05/25(木) 17:06:50.40ID:v+Ze25qa
>>657
ではどのように処理しているのかご教示を。
0659NAME IS NULL
垢版 |
2017/05/25(木) 17:24:42.89ID:???
プランナーが全てそうやってるわけじゃねーだろ
0660NAME IS NULL
垢版 |
2017/05/25(木) 17:28:46.76ID:???
>>658
ループしつつ文字列比較でフィルタリングでしょ
一時テーブルなんか作るメリットゼロ
0661NAME IS NULL
垢版 |
2017/05/25(木) 17:30:15.75ID:???
誰が言ってる事が正しいのですか?
0662NAME IS NULL
垢版 |
2017/05/25(木) 17:37:48.37ID:???
>>661
一部を除いてみんな正しい

まとめると、
・レコード数が少ないなら文字列結合してLIKE検索しろ >>641
・ORと文字列結合を比較するなら、ORの方がインデックスが使われるという面で優れている
・ただしLIKE検索の場合は、前方一致のみインデックスが使われる(普通は)
・普通じゃない方法は、データベース毎に異なる(フルテキスト検索用インデックスを作ったりとか)
0663NAME IS NULL
垢版 |
2017/05/25(木) 19:53:09.48ID:???
DBはMariaDBです
issueテーブルとissueConnectionテーブルがあります
こんな風にして、階層化された複数のイシューが連なる設計です(・・・あまり設計よくないかもです)

■issue
ID
(以下略)

■issueChildren
ID
issueID
childIssueID


あるイシューの子イシューを取得したい場合、たとえば100番の子イシューであれば

SELECT * FROM issue INNER JOIN issueChildren ON issue.ID = issueChildren.ID
WHERE issueChildren.issueID = 100;

でいいと思うのですが、孫まで含めてクエリーで取得したい場合はどうすればいいのでしょうか?
要件では子と孫まででOKで、ひ孫からは不要らしいです。
0664NAME IS NULL
垢版 |
2017/05/25(木) 20:32:38.12ID:???
孫まででいいならissueChildrenをもう一回JOINするだけ
末代まで辿りたいなら再帰問合せ
0665NAME IS NULL
垢版 |
2017/05/25(木) 20:39:25.01ID:???
もしかしてループってるかもしれないからチェックいるね
0666NAME IS NULL
垢版 |
2017/05/25(木) 23:03:02.92ID:???
>>664
具体的にどう書けばいいですか?

>>665
それはデータ的にはないようです
0667NAME IS NULL
垢版 |
2017/05/25(木) 23:49:12.89ID:???
>>666
実際にないなら良いんですけど
テーブル定義はそれを排除している訳ではないので
0668NAME IS NULL
垢版 |
2017/05/27(土) 18:40:58.87ID:???
SQL ServerにはなんでTRIMが無いの?
0669NAME IS NULL
垢版 |
2017/05/27(土) 19:48:28.08ID:EQg2arXb
>>668
さあね、RTRIM、LTRIMがあるからとりあえずいいだろうということなんだろ。
0670NAME IS NULL
垢版 |
2017/05/30(火) 23:02:19.60ID:???
LTRIMって、やっぱエルトリム?
それともリトリム?
俺はどっちでもいいと思うんで、
どっちでもいいと思うんだけど。
0671NAME IS NULL
垢版 |
2017/05/30(火) 23:20:48.04ID:???
テメェの好きなように呼べば良いだろ阿呆
0672NAME IS NULL
垢版 |
2017/05/30(火) 23:21:49.27ID:???
リトリムだとRTRIMもリトリムになるし...
巻き舌とかで区別する?w
0673NAME IS NULL
垢版 |
2017/05/30(火) 23:28:29.98ID:???
右トリム、左トリムで
0674NAME IS NULL
垢版 |
2017/05/31(水) 19:18:26.54ID:HpzcWkU1
レフトリ、ライトリってうちだけかよ
0675NAME IS NULL
垢版 |
2017/05/31(水) 20:17:10.89ID:+YoAe/ot
俺はアールトリム、エルトリムと呼んでいる。
0676NAME IS NULL
垢版 |
2017/05/31(水) 21:48:51.15ID:???
僕はシリコンバレーだけど、
エルティーアールアイエムって呼んでる
0677NAME IS NULL
垢版 |
2017/05/31(水) 22:57:35.60ID:???
うちのかあちゃん、
TRFを無理矢理トリフって読んだぞ。
0678NAME IS NULL
垢版 |
2017/05/31(水) 23:18:05.78ID:???
SQLserver入れた
まずなにやろう
0679NAME IS NULL
垢版 |
2017/06/01(木) 07:34:14.86ID:h3o9bmsv
>>678
アンインストール
0680NAME IS NULL
垢版 |
2017/06/01(木) 08:17:33.40ID:???
>>679
全く同じことを思った
結婚しようか
0681NAME IS NULL
垢版 |
2017/06/01(木) 14:22:43.80ID:???
最強に性格悪い夫婦
0682NAME IS NULL
垢版 |
2017/06/01(木) 23:03:30.83ID:???
♪いぃぃいぃぃいぃいぃぃぃいぃぃぃぃー
0683NAME IS NULL
垢版 |
2017/06/06(火) 22:32:19.81ID:???
伝票ID、顧客名、売上金額、売上月というテーブルがあるとします
顧客毎の各売上月の合計を問い合わせしたい場合どうすればいいのでしょうか?
売上月、顧客名、合計金額という風に出したいですが、一つ一つ顧客名毎に問い合わせするしかないのでしょうか?
0685NAME IS NULL
垢版 |
2017/06/06(火) 23:17:47.18ID:2nFS6UGQ
>>683
それぞれの顧客に電話して聞くしかないな。
0686NAME IS NULL
垢版 |
2017/06/06(火) 23:49:15.89ID:???
select `顧客名`,`売上月`,sum(`売上金額`) as `合計金額` from TABLE
group by `顧客名`,`売上月`;
0687NAME IS NULL
垢版 |
2017/06/07(水) 06:22:26.56ID:WkwCrNcL
アポストロフィ?
0689NAME IS NULL
垢版 |
2017/06/09(金) 03:38:40.83ID:LAO2WyDa
バッククオートでないの?
0690NAME IS NULL
垢版 |
2017/06/12(月) 03:22:13.66ID:???
アゲイン

teradataの識者いる?
0691NAME IS NULL
垢版 |
2017/06/12(月) 12:54:09.35ID:???
SQLの神さま、み教えを!

二つのテーブルを比較し、複数項目(7項目)の値が全て合致した行の
1項目をアップデートをしたいのですが、長ったらしいSQLになってしまいます。

シンプルな記述で実現する方法は、ありますでしょうか?!

お願いします!
0692NAME IS NULL
垢版 |
2017/06/12(月) 12:54:49.15ID:RxG+k+1Y
m(_ _)m
お願いします!
0693NAME IS NULL
垢版 |
2017/06/12(月) 16:30:14.35ID:???
長ったらしくならないので下手なことをせずそのままがいいように思う
0694NAME IS NULL
垢版 |
2017/06/12(月) 19:09:30.01ID:???
Oracleだと
 where (a1, a2, ...) = (b1, b2, ...)
みたいに書けちゃうけどまあ普通は
 where a1 = b1 and a2 = b2 and ...
しかないな
0695NAME IS NULL
垢版 |
2017/06/12(月) 20:54:47.97ID:???
>>694
文字列にして連結して比較する作戦はどうかな?
0696NAME IS NULL
垢版 |
2017/06/12(月) 21:39:05.03ID:???
>>694
それNULL=NULLをどうするのかで問題がでる
NULLの項目があってそれをまじめに考えたら
結構長ったらしくはなる
0697NAME IS NULL
垢版 |
2017/06/12(月) 21:49:53.25ID:???
SQL Serverです。

商品No 価格1 価格2 価格調整コード 調整価格
10000 1,000 1,100 001     200
10000 1,000 1,100 002    100
10000 1,000 1,100 003    100
12000 600 700 001    50
13000 800 850 001    100
13000 800 850 003    50

価格調整コードが'001'か'002'の場合は、
調整価格を価格1に加算し、
価格調整コードが'003'の場合は、
調整価格を価格2に加算する。
その結果を、商品Noから一意で取り出せるビューにしたい。

※イメージ
商品No 価格1(調整後) 価格2 (調整後)
10000 1,300 1,200
12000 650 700
13000 900 900

これをSQLだけで作ろうとしているのですが、無理でしょうか。
0698NAME IS NULL
垢版 |
2017/06/12(月) 21:51:57.07ID:???
case when 価格調整コード = '001'などを入れて、
下記のようにしてみました。

商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 NULL NULL
10000 1,000 1,100 002 100 NULL 100 NULL
10000 1,000 1,100 003 100 NULL NULL 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL NULL
13000 800 850 003 50 NULL NULL 50

これを、001価格〜003価格のNULLの部分を統合して、
1行で表示できるイメージでもよいです。
※イメージ
商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 100 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL 50

プログラムができないため、SQL Management Studioで
SQLだけうって表示できればと思っています。
0699NAME IS NULL
垢版 |
2017/06/12(月) 22:50:34.48ID:???
>>697
>商品Noから一意で
それ、元価格が複数あったりしたらどうするんだよ

とりあえずそのデータでなら
select distinct
商品No,
価格1 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('001','002')) as [価格1(調整後)],
価格2 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('003') ) as [価格2(調整後)]
from テーブル t

で行けるんじゃね
0700NAME IS NULL
垢版 |
2017/06/13(火) 12:58:54.35ID:???
>>695
セパレータつけないと
'abc', 'de' と 'ab', 'cde' が一致しちゃう
絶対に値に含まれないセパレータがあるならいいけど
0701NAME IS NULL
垢版 |
2017/06/13(火) 13:14:09.59ID:???
>>697
「イメージ」じゃなくて、そのデータの完全な結果を示せ
0702NAME IS NULL
垢版 |
2017/06/13(火) 18:50:57.76ID:???
>>697
まだ設計変えられるんだったら、正規化した方がいいかもよ
0703NAME IS NULL
垢版 |
2017/06/13(火) 22:19:04.42ID:???
また意味不明な「正規化」
0704NAME IS NULL
垢版 |
2017/06/13(火) 22:59:33.06ID:???
結合した結果を表示してるのかもしれないし、そこはなんとも。

>>703
意味不明なの?
0705NAME IS NULL
垢版 |
2017/06/13(火) 23:11:18.91ID:yhROQb+J
無理だと思ったらなんだって無理なんだよ
聞くならせめて「可能でしょうか」と聞け
0706NAME IS NULL
垢版 |
2017/06/14(水) 07:04:12.48ID:???
> 意味不明なの?
>>703 には
ってことでしょ
>>699
> それ、元価格が複数あったりしたらどうするんだよ
を見たら普通正規化しろって思うと思うがまあここ初心者スレだから
0707NAME IS NULL
垢版 |
2017/06/14(水) 07:44:23.00ID:???
>> それ、元価格が複数あったりしたらどうするんだよ
>を見たら普通正規化しろって思うと思うがまあここ初心者スレだから

それはクエリの話であって正規化とは全然関係ないな。
0708NAME IS NULL
垢版 |
2017/06/14(水) 08:10:11.20ID:???
>>699
ありがとうございました。これでできました!
元価格はひとつです。
いろいろご意見ありがとうございます。
最近勉強始めたもので、正規化などこれから勉強中です。
0709NAME IS NULL
垢版 |
2017/06/14(水) 08:19:49.45ID:???
>>707
> それはクエリの話であって正規化とは全然関係ないな。
全く理解してないのがよくわかる秀逸なレスだな w
0710NAME IS NULL
垢版 |
2017/06/14(水) 08:44:04.31ID:???
価格1 価格2 というカラム名だけ見て脊髄反射で
「第一正規形じゃない」と思い込んじゃったんだろう。
0711NAME IS NULL
垢版 |
2017/06/14(水) 10:47:57.31ID:???
>>710
商品テーブル: {商品No}, 価格1, 価格2 ({ }はPK)
調整価格テーブル: {商品No, 調整コード}, 調整価格

ってことじゃないの?ってことだろ
0712NAME IS NULL
垢版 |
2017/06/14(水) 12:18:18.14ID:22bTQ0Ls
SQLの神さま!
非正規化テーブルから
正規化テーブル1、正規化テーブル2へ
同時にインサートする時に、
正規化テーブル1、2それぞれに同じ連番を振りたいのですが、
シンプルな方法はありますでしょうか?

ちなみに連番フィールドは、主キーです。
0713NAME IS NULL
垢版 |
2017/06/14(水) 12:47:47.15ID:egtOOHVa
また意味不明な「非正規化」
0715NAME IS NULL
垢版 |
2017/06/14(水) 13:35:44.32ID:???
>>712
シンプルな方法を聞く前に、データベース設計の入門書をまず嫁
0716NAME IS NULL
垢版 |
2017/06/14(水) 18:10:33.42ID:???
>>712
RDBMSによると思うので使ってるもの書いてくれ
0717NAME IS NULL
垢版 |
2017/06/15(木) 00:18:57.91ID:/yb/PIsQ
質問ですが
カラムに  
[年齢]、[種別]、[時間]
があったとした場合に  [時間] の最新の100件だけを対象に合計、平均を出したいと思っています。
↓ に何を追加したら何を追加したらいいでしょうか?


SELECT SUM(年齢) AS 年齢の合計 , AVG(年齢) AS 年齢の平均 , 種別
FROM 従業員マスタ
GROUP BY 種別
0718NAME IS NULL
垢版 |
2017/06/15(木) 00:36:32.81ID:???
fromを、limitとかoffsetとか使ったサブクエリにすれば良いんじゃね
0719NAME IS NULL
垢版 |
2017/06/15(木) 00:56:23.31ID:/yb/PIsQ
>>718
limit と offsetを使ったら簡単にできそうですね。
まったく知らなかったので助かりました。ありがとうございました。
0720NAME IS NULL
垢版 |
2017/06/15(木) 01:11:37.26ID:???
年齢の合計というのは、始めて見たw
0721NAME IS NULL
垢版 |
2017/06/15(木) 12:13:49.76ID:???
年齢なんか合計してどうすんだ?年齢層を知りたいなら平均で判りそうなもんだが
0722NAME IS NULL
垢版 |
2017/06/15(木) 12:21:39.87ID:???
意味のない数字出力すんなや
0723NAME IS NULL
垢版 |
2017/06/15(木) 12:27:45.10ID:6L/hThIQ
1000歳野球みたいなのあるだろ無知どもめ
0724NAME IS NULL
垢版 |
2017/06/15(木) 12:33:50.82ID:???
対抗戦のチームで年齢合計を条件にすることありそうなw
0725NAME IS NULL
垢版 |
2017/06/18(日) 12:30:04.24ID:???
SQL serverはマイクロソフトのデータベースだよね?
ただSQLっていったら何になるのでしょうか??
0727NAME IS NULL
垢版 |
2017/06/18(日) 13:26:42.08ID:CR3oQu8v
>>725
リレーショナルデータベース製品のことを言っているなら、SQL Serverを「SQL」と呼ぶ人間もいるし、MySQLのことをただ「SQL」と呼ぶ人間もいる。

どちらの略し方もお勧めしない。
0728NAME IS NULL
垢版 |
2017/06/18(日) 14:37:13.30ID:c1GtVOfY
製品名が「SQL」が入ってるんだからどちらも自然な略し方じゃないか
他人の略し方をとやかく言うな
0729NAME IS NULL
垢版 |
2017/06/18(日) 14:39:54.44ID:???
すごい混乱するんだよね
ちゃんとまだ理解してないから
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う
またはSQLserverからMysqlを使ってデータを取得する、とか

混乱のポイントはSQLserverをデータベースじゃなくてMysql とかPostgresqlと並列で捉えて話している人とコミニュケーション取っていること

途中で頭混乱して何がなんだかわからなくなる

まとめると
SQLserverやOracleはデータベース名
ゆえにプログラミング言語じゃない、でいいかな?
0730NAME IS NULL
垢版 |
2017/06/18(日) 14:40:13.37ID:???
オラクルはSQLではありません
0731NAME IS NULL
垢版 |
2017/06/18(日) 14:40:42.48ID:???
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う?

疑問形でした
0732NAME IS NULL
垢版 |
2017/06/18(日) 14:41:31.60ID:???
>>730
ORACLEはデータベースで、という意味であえてSQLserverと並べたんだけど
0733NAME IS NULL
垢版 |
2017/06/18(日) 14:42:36.34ID:???
どなたかすっきりと正しい定義を書いてもらえないでしょうか?
検索してもそれぞれ少しずつ違い混乱してる…
0734NAME IS NULL
垢版 |
2017/06/18(日) 14:48:25.61ID:???
>SQLserverからMysqlを使ってデータを取得する、とか

何言ってんだ?
0735NAME IS NULL
垢版 |
2017/06/18(日) 14:49:42.60ID:c1GtVOfY
「sql server」
SQLを理解するインタープリターサービスを提供するサーバー型アプリケーションの総称

「SQL Server」
Microsoft社が製造・販売を行なうRDBMS製品
0738NAME IS NULL
垢版 |
2017/06/18(日) 14:54:52.55ID:???
>>737
はぁ?

SQLserverからsqlを使ってデータを取得する
だったら判るよ
MySQLはまた別個のRDBだろ?お前馬鹿?
0740NAME IS NULL
垢版 |
2017/06/18(日) 14:56:32.05ID:???
>>735
じゃあデータベース自体は他にあると思っていいの?
0741NAME IS NULL
垢版 |
2017/06/18(日) 14:57:26.82ID:???
煽るだけでスマートな答え方しない人は説明できないんでしよ?
0742NAME IS NULL
垢版 |
2017/06/18(日) 14:59:10.94ID:???
>>740
「データベース」ってのはただのデータの集合を示す概念
0743NAME IS NULL
垢版 |
2017/06/18(日) 15:00:38.35ID:???
じゃあ
RDBMSという括りの中に並列して
SQLserverもMySQLもpostgresqlもあると思っていいんでしょ?
0744NAME IS NULL
垢版 |
2017/06/18(日) 15:00:44.29ID:c1GtVOfY
>>740
データベースとは読んで字のごとくデータの事でありソフトウェアはあくまでもデータベースを利用・管理するためのものだけど?
「テキストファイルで作文書く」って変だろ?
0746NAME IS NULL
垢版 |
2017/06/18(日) 15:04:24.01ID:???
>>742
わかった
データベース自体はなんとかってメーカー名とかはつかないってこと?
0747NAME IS NULL
垢版 |
2017/06/18(日) 15:05:47.86ID:???
>>745
わかった
ありがと
全部それぞれ親戚だけど少しずつ違う言語と思えばいい?
0748NAME IS NULL
垢版 |
2017/06/18(日) 15:09:00.26ID:???
うちの会社はデータベースに独自の名前つけてるからそれがメーカー名製品名なのかと思ってたんだ
でもその大元がoracleでそれを企業用カスタマイズしてて、だからoracleがデータベースというのかと思ってた
それと同じにms SQLserverも考えてた
0749NAME IS NULL
垢版 |
2017/06/18(日) 15:10:06.01ID:???
そのレベルの話ならここで質問するよりWikipediaとかで調べた方が
嫌な気分にならなくてお互いハッピーだと思うぞ。
0750NAME IS NULL
垢版 |
2017/06/18(日) 15:10:55.49ID:???
>>747
ごちゃごちゃ考える前になんで入門書の一つも読もうと思わんの?
0751NAME IS NULL
垢版 |
2017/06/18(日) 15:14:21.08ID:???
そう思ってとりあえず本も買ったんだけど、そもそものところに帰ってきた
wikiも読んだ
けど会社で説明受けてまた混乱してきて
たぶんいろいろ略してる人で

ちょっと余談だけど、どうもソートを抽出の意味で使ってくるんだよ
Excelでもオートフィルタでデータ絞る時にソートして、って言ってくる
はーっ???となる
ソートは並べ替えだろ?

もう説明がめちゃくちゃで脳内変換しながらですげー疲れる
0752NAME IS NULL
垢版 |
2017/06/18(日) 15:16:38.99ID:???
ちょっと不安になってきたんだけど
どう考えたって
ソート=並べ替え
でオートフィルタで絞ることじゃないよな?
もう当たり前過ぎて聞いてて馬鹿馬鹿しくなるんだけど、その人に仕事教わった人はみんなフィルタ機能をソートするって言うんだよ
自分ひとり、はっ??となって
あまり続くと自信なくなってくる
0753NAME IS NULL
垢版 |
2017/06/18(日) 15:17:36.29ID:???
>>746
データベース(データの集合)を扱うためのソフトウェアがDBMS。これがOracleとかSQL server。
0754NAME IS NULL
垢版 |
2017/06/18(日) 15:17:53.28ID:???
まぁ用語の使い方がデタラメな連中が多くて混乱するってのは同情するけどさw
0756NAME IS NULL
垢版 |
2017/06/18(日) 15:19:41.45ID:???
>>747
それぞれのDBMSで使うSQLはSQL標準に準拠してはいるんだけど、DBMSによって多少方言はある
0757NAME IS NULL
垢版 |
2017/06/18(日) 15:20:45.99ID:???
脳内変換してるんだけど、いつか変換しなくてよかったのにー的間違いしそうで疲労がすごい
0758NAME IS NULL
垢版 |
2017/06/18(日) 15:23:46.13ID:???
>>756
おけ
ここらへんになれば確かに買った本に書いてある通りだ

これ買った
https://www.amazon.co.jp/SQL-第2版-ゼロからはじめるデータベース操作-プログラミング学習シリーズ-ミック/dp/4798144452
0760NAME IS NULL
垢版 |
2017/06/18(日) 15:29:41.60ID:???
は?と思ったそのときにどういう意味か確認すりゃいいのに。

一応プログラミングじゃソート=並べ替えが普通だけど、一般には分類、選別っていう意味もあるからな。
0761NAME IS NULL
垢版 |
2017/06/18(日) 15:36:24.83ID:???
>>760
んーできてたらするんだけどさ
できない空気なわけで…

そう広義では近しいから突っ込みにくい
けど明らかに絞りなんだよな…
はぁーどっかでしれっと質問するわ
0762NAME IS NULL
垢版 |
2017/06/18(日) 15:47:05.51ID:???
教えてくれた人ありがとです
0763NAME IS NULL
垢版 |
2017/06/18(日) 16:11:11.16ID:???
お願いあるんだけど、質問する時は、出来るだけアゲて欲しい
そうするとID表示されるので、質問者のレスを追いかけやすい
誰が質問し誰が回答しているか分からなくなるとちょっと困る
0764NAME IS NULL
垢版 |
2017/06/18(日) 16:43:41.78ID:c1GtVOfY
いつだってアゲアゲでいいじゃんか
むしろなんのためにわざわざさげんだよカス
0765NAME IS NULL
垢版 |
2017/06/18(日) 18:37:58.39ID:CR3oQu8v
日本マイクロソフトの人間もSQL ServerをSQLと略すやつがいるんだよな。

SQLのことはクエリやコマンドと呼ぶから混乱しないw
0767NAME IS NULL
垢版 |
2017/06/18(日) 18:52:15.83ID:???
MSSQLかSQL Serverなら混乱しないよね
0768NAME IS NULL
垢版 |
2017/06/18(日) 18:58:17.03ID:???
>>767
あーなら単にsqlならせめてsql文とかそういうこと?
0769NAME IS NULL
垢版 |
2017/06/18(日) 19:15:22.29ID:???
上で質問連打してたやつ
誰も決め手を書いてあげないからなかなか納得いかなかったようだが
SQL=言語と言ってあげればいいじゃん
それが日本語なのか英語なのかフランス語なのかそういう違いだって
日本語で卵ちょうだいっていうのと英語で卵ちょうだいは言葉が違うでしょ?って
0770NAME IS NULL
垢版 |
2017/06/18(日) 19:20:57.60ID:c1GtVOfY
>>769
いやだからSQLはSQL Serverの略だってば
0771NAME IS NULL
垢版 |
2017/06/18(日) 19:23:00.83ID:???
>>770
だからお主はそのつもりでも
そうじゃないやつがいるから混乱すんだべ
クエリをsqlっていう奴がいるから
0772NAME IS NULL
垢版 |
2017/06/18(日) 19:32:11.57ID:???
お題
「どなたかSQLを共有してくれますか?」
というメールが流れた
これはなんぞ?
0773NAME IS NULL
垢版 |
2017/06/18(日) 19:41:05.90ID:???
>>768
単にSQLなら問い合わせ言語のことだなぁ
あえて明示的に区別したいならSQL文だろうけど

データベースを集積されたデータとそれを操作するアプリケーションとで区別したいなら後者をDBMSと言うべきだけど前者は普通にデータベースって言うでしょみたいな
0774NAME IS NULL
垢版 |
2017/06/18(日) 19:41:40.82ID:c1GtVOfY
>>771
知るか他人のことなんかw
混乱してるなら混乱したままの現状を理解しろよw
0776NAME IS NULL
垢版 |
2017/06/18(日) 19:51:32.23ID:???
正しくはクエリを共有、だよな
0777NAME IS NULL
垢版 |
2017/06/18(日) 20:04:48.00ID:c1GtVOfY
>>776
それでも意味がわからんのだが?w
0778NAME IS NULL
垢版 |
2017/06/18(日) 20:11:19.41ID:???
>>777
だからわかんない中で意味を汲み取れよー
なんだろ?w
0779NAME IS NULL
垢版 |
2017/06/18(日) 20:16:42.99ID:c1GtVOfY
>>778
混乱してる事と元々意味が通らない事では天と地ほどのひらきがあるぞw
そうゆーとこ区別しようなw
0781NAME IS NULL
垢版 |
2017/06/18(日) 20:25:47.86ID:???
自分では提言しないのなw
0782NAME IS NULL
垢版 |
2017/06/18(日) 20:32:12.70ID:???
これだけ誰もスッキリ言えないSQLってなんなの?
0783NAME IS NULL
垢版 |
2017/06/18(日) 20:33:42.04ID:???
>正しくはクエリを共有

まったく意味ワカンネ
0785NAME IS NULL
垢版 |
2017/06/18(日) 20:50:28.83ID:???
まずほんとに自分のも子供も大事にすんなら
2ちゃんなんか見ないだろうからな
見てる時点でクズ
0787NAME IS NULL
垢版 |
2017/06/18(日) 20:53:15.12ID:FkALiZdC
>>773
DBMSはデータベース管理システムのことだぞ?
0790NAME IS NULL
垢版 |
2017/06/18(日) 21:06:47.05ID:???
>>789
だよな
なんか通じないんだよこの人
0791NAME IS NULL
垢版 |
2017/06/18(日) 21:48:08.56ID:c1GtVOfY
>>789-790
通じるわけないだろお前のオレオレ定義なんかw
普通に勉強してくださいw
0792NAME IS NULL
垢版 |
2017/06/18(日) 21:50:53.25ID:???
>>791
そっくりそのまま返すわキチガイ
0795NAME IS NULL
垢版 |
2017/06/18(日) 21:59:15.47ID:???
ただSQLって言ったらmysql,sqlserver,postgresql他含めそれぞれの言語いうものと思ってきた

SQL=SQLserverとは即ならないんだが…

もちろんSQLserverを用いてる環境で話してるなら別だがこういうとこではすぐにそのMS社製品だけを特定して結びつけないが…

なんかおかしいだろうか?
0796NAME IS NULL
垢版 |
2017/06/18(日) 22:00:02.21ID:???
>SQLはSQL Serverの略だってば

ドヤ顔でこういうの会社でも言ってんだろーなー
0797NAME IS NULL
垢版 |
2017/06/18(日) 22:02:37.64ID:c1GtVOfY
どんだけ悔しいんだよw
0799NAME IS NULL
垢版 |
2017/06/18(日) 22:06:31.73ID:???
>>770
だったらmysqlはsqlとは言えなくなるよ
0800NAME IS NULL
垢版 |
2017/06/18(日) 22:13:23.84ID:???
>>799
まいしぃーける
こう読んであげて
0801NAME IS NULL
垢版 |
2017/06/18(日) 22:16:30.31ID:c1GtVOfY
>>799
はあ?MySQLはSQLだろw
なんだよ言えなくなるってw
0804NAME IS NULL
垢版 |
2017/06/18(日) 22:23:24.05ID:???
>>801
おまいさんがこれ言ったからだろ

0770 NAME IS NULL 2017/06/18 19:20:57
>>769
いやだからSQLはSQL Serverの略だってば
ID:c1GtVOfY(5/11)
0805NAME IS NULL
垢版 |
2017/06/18(日) 22:23:56.05ID:???
>>801
初心者スレやでここは
キチガイは出ていきな
0806NAME IS NULL
垢版 |
2017/06/18(日) 22:25:01.83ID:???
ID:c1GtVOfY

言ってること支離滅裂になってきてるけどだいじょぶか?
日曜の夜だから酒でも飲んでだいぶ酔ってるんじゃ?
0808NAME IS NULL
垢版 |
2017/06/18(日) 22:25:53.02ID:c1GtVOfY
>>802
多数派はマリアだろうな
SQL Serverをサーバーと略す一派ならDBと言うかも知れんがw
0809NAME IS NULL
垢版 |
2017/06/18(日) 22:34:11.44ID:???
>>808
いやおかしいでしょ
SQLserver=SQLって言ってたじゃん
つかw
そううえサーバーっておかし過ぎだよ
DBって…
大丈夫この人?
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:???
↑のようなテーブルがあったとして↓のビューを作成したい。
新規評価ビュー
ランキング 名前 テスト回数 平均点 評価

↑この下に、どういう結果を期待しているのか、書いてみて
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秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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