ユーザーは単に表示されている件数とデータの番号が一致していたら、わかりやすい程度のことしか言っていない。 0749NAME IS NULL2019/02/10(日) 18:46:54.82ID:???>>745 環境とか設定による 0750NAME IS NULL2019/02/10(日) 20:11:17.09ID:???>>746 これが何なのか読んでもわからんすw というかORM使ってるのでこの型使えるのだろうか >>747 >>748 確かに連番である必要は無いです 適当に被らない番号を振ってもらえれば良いんだけどそういう句はあります? 0751NAME IS NULL2019/02/10(日) 23:07:57.76ID:???>>750 どういうやり方で最初の空のテーブルを作成してますか? 0752NAME IS NULL2019/02/11(月) 04:27:17.82ID:XERbxblT>>750 シーケンスを作って、シーケンスから新しい番号を取る。
製品によって異なるから「PostgreSQL シーケンス NEXTVAL」のキーワードでくぐって勉強して。 0753NAME IS NULL2019/02/11(月) 23:07:27.20ID:I14UVxY+>>751 CREATE TABLE prices ( id INTEGER, date DATE NOT NULL, market_price INTEGER, nav_price FLOAT, retrieval_date DATE, PRIMARY KEY (date) )
というSQL です。id をインクリメントしたいんですが
>>752 ググっても使い方がwかりませんでした 0754NAME IS NULL2019/02/11(月) 23:12:13.51ID:XERbxblT だめだこりゃ 0755NAME IS NULL2019/02/11(月) 23:43:33.61ID:???>>752 質問をいくつか
idを連番にして一意にしたいって事ですか?
dateをプライマリキーにしていますが、 このテーブルデータのデータを一意に特定したいときに dateを指定するって事ですか? 0756NAME IS NULL2019/02/12(火) 13:36:18.57ID:eWsZ2mFu>>755 dateとは? 0757NAME IS NULL2019/02/12(火) 17:33:47.98ID:??? date DATE NOT NULL, PRIMARY KEY (date) 0758NAME IS NULL2019/02/12(火) 19:40:53.09ID:???>>746の回答で終わってる話だし、自分で調べる気がないようだから これ以上構わないほうが良いぞ 0759NAME IS NULL2019/02/12(火) 21:40:34.30ID:hyYi05zW>>755 date で一意にしたいです
>>758 つまりカラムの型をSEREALにすれば良いんですね PRYMALY KEYにしか使えないんですね 0760NAME IS NULL2019/02/13(水) 00:29:25.04ID:??? 何をしたいのかがよく分からないけれど 率直に言うと、テーブル定義を見ただけで、これは酷いと思った ここで質問するにしても基本が出来ていないと 質疑そのものが成り立たないと思う 一つ一つ教えてやれるほど暇な人はここにはいないと思うので まず自力でテーブル設計の基本から学び直した方が良いだろう 0761NAME IS NULL2019/02/13(水) 01:28:24.13ID:bwrqc7Ol う〜ん厳しいっすね、 達人に学ぶDB設計指南書 という本を読んで出直してきます ありがとうございました。 0762NAME IS NULL2019/02/13(水) 11:26:56.25ID:??? 教えてください。 12c ってWindows10Homeには対応していないのでしょうか? インストールしようとすると、最初の段階でフリーズしてそのままなんですが。。。 それとも自分のやり方が間違っているのか? 0763NAME IS NULL2019/02/13(水) 12:26:16.60ID:??? > それとも自分のやり方が間違っているのか? Yes.
Oracleに聞け 0764NAME IS NULL2019/02/13(水) 16:28:18.68ID:RDoKqAmg>>762 Windows 10 Homeには対応していません。Windows 10 HomeはIT技術者が使うようなものではありません。 0765NAME IS NULL2019/02/13(水) 19:12:25.52ID:??? Windows10でも64ビット版なら対応してるみたいだな 0766NAME IS NULL2019/02/13(水) 23:53:03.82ID:??? おいおい、そもそも12cってなんだ? 0767NAME IS NULL2019/02/14(木) 00:13:36.28ID:???>>762 Win10Home x64 に Oracle12c 入れてるよ Release2 だと言うように途中で止まったけど Release1 は最後まで行った 0768NAME IS NULL2019/02/14(木) 00:51:18.49ID:rVmZaTkp 動くのとサポートしているかどうかは別問題。 0769NAME IS NULL2019/02/14(木) 00:52:15.11ID:rVmZaTkp こういう勝手な組み合わせで使って文句をサポートに言ってくる会社は必ずある。 0770NAME IS NULL2019/02/14(木) 00:53:47.16ID:rVmZaTkp>>766 視力検査で「みぎ」と言えば視力1.2と判断される。 0771NAME IS NULL2019/02/14(木) 16:39:28.33ID:EccPVtMv 【バイトテロ】 くら寿司「法的措置とる」 奴隷DQN「法律が金持ちだけを守るから、テロに訴える!」 https://rosie.5ch.net/test/read.cgi/liveplus/1550110870/l500772NAME IS NULL2019/02/15(金) 18:52:16.64ID:BQV0WL9f 基本情報の古い過去問のデータベースが解けません。解説してください。 平成18年度春期 基本情報 問1 空欄c 答えは「ア」 https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_1/2006h18h_fe_pm_qs.pdf
SELECT 社員ID FROM 社員表 WHERE 年齢 < ALL(SELECT 年齢 FROM 家族表 WHERE 家族表.社員ID = 社員表.社員ID)
副問い合せ、相関副問合せは理解しています。 副問合せの結果リストが0行の場合、なぜ<ALLの条件が成立してしまうのかわかりません。 oracleの環境で試してみたところ >ALL でも =ALL でも、副問合せの結果リストが0行の場合、真となるようでした。 よろしくおねがいします。 0773NAME IS NULL2019/02/15(金) 19:58:39.46ID:slwoR7Dy>>772 ALLは真偽値を返すのではなく、副問い合わせの結果すべてに当てはまるかどうかの条件構文。 0774NAME IS NULL2019/02/15(金) 20:05:16.74ID:slwoR7Dy>>772 結果リストがゼロ件の場合は、FALSEでもNULLでもTRUEでもないため、条件そのものがない扱いになる。 0775NAME IS NULL2019/02/15(金) 20:11:56.83ID:slwoR7Dy 正確には結果が返らないため、どの年齢もTRUEになってすべてのレコードが対象になる。 0776NAME IS NULL2019/02/15(金) 20:14:08.31ID:slwoR7Dy SELECT文の結果の対象レコードが存在しない状態はNULLではない。 0777NAME IS NULL2019/02/15(金) 21:29:59.00ID:???>>772 ALLはその副問い合わせが空のときはTrueと決まってるから イマイチ直感的ではないけど、そう決まってるからしょうがない
条件そのものが無い扱いになったりするわけじゃない ALL条件はTrue/Falseを返す(この場合はTrue なぜならそう決まっているから) 07787722019/02/18(月) 09:17:02.02ID:Vl1v2yYD 皆さんありがとうございました。よく分かりました! 0779NAME IS NULL2019/02/22(金) 21:56:20.09ID:??? MySQLの使い方に悩んでる。 WebアプリケーションでToDoリスト作るとして ToDoリストのデータとして5つのテーブルが必要です。 Aさん、Bさん、Cさんがそれぞれ保存し、各自、自分が登録したToDoのみが見れます。 このような場合、SQLサーバでは、Aさん用データベース、Bさん用DB、Cさん用DBを作成する。 という使い方は変ですか? 0780NAME IS NULL2019/02/22(金) 21:58:20.75ID:???>>779 補足、使用人数は例では3人ですが、100人以上の可能性あり 0781NAME IS NULL2019/02/22(金) 22:38:20.63ID:??? ひとつのテーブルで行ごとにアクセス権を設定できるDBMSもあるにはあるけど (MySQLでできるかどうかは知らん) アプリケーション側で制御するのが普通 ユーザーごとにテーブルを分けるのは普通じゃない 0782NAME IS NULL2019/02/22(金) 23:41:46.14ID:??? MySQLでもユーザー毎にdatabaseを割り当ててアクセス権を設定すれば出来ないことはないが そこまでする必要があるのって、ユーザーにテーブル作成や削除までやらせたいときくらいじゃないか? 0783NAME IS NULL2019/02/23(土) 07:25:16.90ID:??? ありがとうございます。>>779です。 SQLに対してDBを作ったり、テーブルを作ったりするのはToDoアプリ側で、ユーザーはToDoアプリの操作のみです。 アプリの保存データをSQLで管理したいという話なのですが、 こういうときは、データベースごとに分けるのが普通ではないというなら、普通はどんな方法で管理するのでしょうか? @ 一つのDB内に、Aさんのテーブル5つ。Bさんのテーブル5つ作る 。(テーブルが増えていく) A 一つのDB内に5つのテーブルがありその中でAさんのレコード、Bさんのレコードを作っていく。(レコードが増えていく) B 名前をつけて保存で、新しいDBを作りその中に5つのテーブルを作る。(DBが増えていく) 0784NAME IS NULL2019/02/23(土) 07:52:54.75ID:??? 人が増減するのに合わせてDBやテーブルを増減するのってその管理がまた 大変だろ…。これ言うとここで鬼門の削除フラグが〜になってしまうけどw 0785NAME IS NULL2019/02/23(土) 08:14:15.37ID:??? 昔、IBMが作ったシステムの設計見たらビューで権限のあるレコードだけ表示できるようにしていた。 そんなんでパフォーマンスが出るのかと思ったけど、結構大規模なDWHでもそこそこの速度が出ていた。 もしかしたらIBMのチューニング力のなせる業だったのかもしれないが。 0786NAME IS NULL2019/02/23(土) 08:21:42.86ID:???>>784 ありがとうございます。ということは、ユーザーの操作により、DBやテーブルの作成はあまりしない方が良いということですね。 アプリ起動時に、DBが無ければ作成したかったんですがそれもやめた方がいいのか?事前に作成しておくのが普通?
お力添えよろしくお願い致します。 0803NAME IS NULL2019/03/10(日) 11:25:40.65ID:??? FROM 社員テーブル T1 WHERE NOT EXISTS ( SELECT * FROM 社員テーブル T2 WHERE T2.所属部署 = T1.所属部署 AND ( T2.入社年度 < T1.入社年度 OR T2.入社年度 = T1.入社年度 AND T2.id > T1.id )) 0804NAME IS NULL2019/03/10(日) 11:59:03.32ID:???>>803 www 08058022019/03/10(日) 12:06:30.08ID:Q3ybtzHt 803さんのはまだ試してないですが、 group byとhavingで2回絞るのは無理ですかね? 0806NAME IS NULL2019/03/10(日) 13:00:21.03ID:???>>802 つかってるDBMSかけ
SELECT * FROM( SELECT ROW_NUMBER() OVER( PARTITION BY 所属部署 ORDER BY 入社年度,社員id DESC) as 順位, * FROM 社員テーブル ) t where t.順位=1
select max(`社員id`),`氏名`,`所属部署`,`入社年度`,`生年月日` from `社員テーブル` where (`所属部署`,`入社年度`) in (select `所属部署`,min(`入社年度`) from `社員テーブル` group by `所属部署`) group by `所属部署`; 0809NAME IS NULL2019/03/10(日) 16:06:47.18ID:???>>806 Row_Number wwwwwwwwwwww 0810NAME IS NULL2019/03/10(日) 16:08:11.04ID:???>>806 そういう使いもんならないの教えんのやめ 0811NAME IS NULL2019/03/10(日) 21:01:07.81ID:g5zHpNPp これから仕事で必要になるためSQL勉強しています。 皆さんはどうやって勉強していますか?
現在SQLBoltってサイトで勉強しています。 覚えが遅いためなかなか覚えられません。 一応ExcelのVBAはできます。 勉強法がわからないのでAccess VBA Standardの資格で勉強した方がいいでしょうか? 0812NAME IS NULL2019/03/10(日) 21:45:35.27ID:??? プログラム言語と違って、何か適当な例題があるわけじゃないし、 割と実践的に体で覚える感じでした SQLを使用するソフトによって多少、あるいは大きく違ったりするので SQLをどういう所で使いたいか、ソフトに何を使うかを見極めて学習すると 効果的かも知れません それから、SQL言語はVBAとは異なるものです 0813NAME IS NULL2019/03/10(日) 21:51:09.47ID:???>>811 今どんなことやってるん? 0814NAME IS NULL2019/03/10(日) 21:52:55.29ID:???>>812 使いものになるまでの所要期間だいたいどれくらい? 0815NAME IS NULL2019/03/10(日) 21:59:42.65ID:??? 命がけで取り組めば半年もあればなんとかなります 0816NAME IS NULL2019/03/10(日) 22:06:53.55ID:???>>815 すみません横から失礼いたします。 業務上必要に迫られ勉強することになりました。 環境は会社で用意されてますが前任者が居なくなってしまう為、ゼロから始めて1ヶ月半でモノにしろと言われています。 命がけで半年ですか…胃が痛くなってきました。 1ヶ月半など無茶苦茶な要求と言えそうですね(泣) ちなみにエンジニアさんですか?当方非エンジニアです。 0817NAME IS NULL2019/03/10(日) 22:10:58.93ID:??? 複雑さの程度にもよりますから 簡単なものでしたら、1か月も掛からずに習得は出来るでしょう 担当する業務の内容次第です 0818NAME IS NULL2019/03/10(日) 22:19:54.37ID:???>>817 レスありがとうございます。 段階にもよりますね。 予定されているものを見たところサブクエリ5〜7つ、最後で結合するという説明でした。 かなり長くこんなの書けるのだろうかと気が遠のきました。 テーブルの挿入などはなさそうです。 0819NAME IS NULL2019/03/10(日) 23:06:33.52ID:g5zHpNPp>>812 私はあまり覚えがよいほうじゃないので、業務が始まる前に 勉強して基本的な知識をつける予定でしたが、 やはり実務をこなして体で覚えるほうが早いのですね。 レスありがとうございます。
社員テーブルに該当するものが複数テーブルから構成されたサブクエリだとかなり重くなりました。 0828NAME IS NULL2019/03/11(月) 11:49:18.57ID:??? Select文のasに( )を使いたいのですが、どうかけばいいでか? 0829NAME IS NULL2019/03/11(月) 12:26:03.33ID:??? ダブルクォートで括るのが普通だが 角括弧やバッククォートを使うDBMSもある 0830NAME IS NULL2019/03/11(月) 13:16:00.18ID:???>>828 そういったあんた個人のわがままが通ったとして、 で、ユーザー(つまり結果)に優位性があるのか? 0831NAME IS NULL2019/03/11(月) 13:27:39.34ID:???>>829 レスありがとうございます。 使ってるのはpostgresqlてすが、" ではダメみたいです。
>>830 As 時間 としていたところ、ユーザーから 時間(分) と表示して欲しいとの要望かありました。 ()は特殊な文字てあることは理解していますが、何らかの策があるのではと質問したのですが。あまりに非常識なようでしたら諦めます。 0832NAME IS NULL2019/03/11(月) 14:38:08.55ID:??? postgresなら"でいいはず なんらかのプログラミング言語を介して使っているなら そのプログラミング言語に対して"をエスケープしなければならない 0833NAME IS NULL2019/03/11(月) 15:02:14.67ID:???>>832 すみません、アホなことしてました。 時間"("分")" って… "時間(分)"でokでした。 0834NAME IS NULL2019/03/12(火) 15:55:28.54ID:wb2Tlo5B まもなく日本から世界経済が崩壊し、世界教師マYトレーヤとUFOが出てくる。 それからベーシックインカムがはじまるので、20年間ヒキコモリの人でも死にはしない。 むしろ、心配するなら被曝のほう。
【メルトダウンA級戦犯】 『非常用発電機』安倍が放置 『非常用空冷回路』小泉が撤去 死刑求刑 https://rosie.5ch.net/test/read.cgi/liveplus/1552357792/l500835NAME IS NULL2019/03/20(水) 08:25:55.58ID:??? ロジックどこまでSQLにするのが正解? 0836NAME IS NULL2019/03/20(水) 08:52:06.23ID:IPQHQif1>>835 できるだけSQLには詰め込まない。 0837NAME IS NULL2019/03/23(土) 10:38:46.25ID:??? 何個までテーブル結合する? 0838NAME IS NULL2019/03/23(土) 10:48:20.01ID:???>>837 必要なだけ 経験としては10個ぐらいまでやったことある 0839NAME IS NULL2019/04/06(土) 16:59:18.80ID:??? テーブル No1 No2 No3 No4 No5 No6 No7 No8 data1 A B A A A C B A data2 A A A A A A B B data3 C C C A B A A A data4 A A C C A B A B data5 A A B A A B B A data6 A C C A C C A A
ほしい結果 A B C data1 5 2 1 data2 6 2 0 data3 4 1 3 data4 4 2 2 data5 5 3 0 data6 4 0 4
横方向にA,B,Cの数をカウントしたいですが、SELECT文のみで実施するとしたらどういったクエリになりますか? oracle12です。 0840NAME IS NULL2019/04/06(土) 18:34:14.74ID:zJrZyIQq>>839 Excelでやれば? 0841NAME IS NULL2019/04/06(土) 18:34:35.19ID:??? select No1, ((case No2 when A then 10000 when B then 100 when C then 1 end) +(case No3 ……) +……) from テーブル 0842NAME IS NULL2019/04/06(土) 20:48:36.77ID:???>>839 スマホだから試してないけど (セレクトはselectに置換えてくれ) セレクト T.data as data, sum(case T.NO when 'A' then 1 else 0 end) as A, sum(case T.NO when 'B' then 1 else 0 end) as B, sum(case T.NO when 'C' then 1 else 0 end) as C from ( セレクト data, NO1 as NO from table union all セレクト data, NO2 as NO from table (* 中略 *) union all セレクト data, NO8 as NO from table ) T group by T.data 0843NAME IS NULL2019/04/06(土) 22:02:53.39ID:???>>840 >>841 >>842 レスありがとうございます。
data_ No rank data1 No1 A data2 No1 A data3 No1 C data4 No1 A . . . data1 No8 A data2 No8 B data3 No8 A data4 No8 B data5 No8 A data6 No8 A 0847NAME IS NULL2019/04/07(日) 12:44:56.58ID:???>>846 > 毎日のレコード数が凄いことになっちゃうなーって。 どんなシステムかわからんけど今時そこら辺のPCでも100万レコード程度は普通に扱えるしOracleでそこそこのサーバー入れてりゃ1億件程度でも破綻しないよ