質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

476閲覧

SQLで異なるselect文を横につなげる方法について

Misa

総合スコア3

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2022/06/03 00:13

編集2022/06/03 00:24

SQLについて質問です。
日毎に縦に数字が並ぶようなselect文が2つあり、それらを横につなげたいです。
以下のようなテーブルが2つあります。

table1

dateiduser_id
2022/1/112346
2022/1/112357
2022/1/212368
・・・・・・・・・

table2

dateuser_idsubject
2022/1/161
2022/1/172
2022/1/283
・・・・・・・・・

この2つのテーブルを使い全体のidの数ととsubjectが2のidの数を日毎に並べたいです。

イメージ↓

date全体の申し込み数subjectが2のときの申込数
2022/1/121
2022/1/232

table1.idの数を日毎に集計するselect文とtable2のsubjectが2のときのtable1.idの数を日毎に集計するselect文の2つは用意できました。しかしそこから横につなげることができないです。

1つ目のselect

select table1.date as day, count(table1.id) as 申込数 from table1 group by day

2つ目のselect

select table1.date as day, count(table1.id) as 申込数 from table1 left join table2 on table1.user_id = table2.user_id where table2.subject = 2 group by day

サブクエリなどいろいろ考えたのですが、日毎に集計したものを横に並べるというのが調べてもよく分かりませんでした。教えていただきたいです。宜しくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2022/06/03 00:16 編集

table1とtable2を図示しているのですからほしい結果も図示してください 見た感じtable1とtable2は完全な1対1対応していないので、 何を基準にリレーションしたいのかもきちんと説明したほうがよいでしょう
Misa

2022/06/03 00:23

失礼しました。ほしい結果を追加しました。
maisumakun

2022/06/03 00:46

パッと見たところ、table1とtable2でdateとuser_idの組が重複していますが、それは保証されているのでしょうか、それとも一致しないデータも存在する状況でしょうか。
hoshi-takanori

2022/06/03 00:49

こんな感じ? select date, count(*), sum(if(subject = 2, 1, 0)) from table2 group by date;
sazi

2022/06/03 01:01

2つ目って合っていますか? 日付を関連させていないので、過去分も集計されることになっていますけど。
yambejp

2022/06/03 01:06

全体の申し込み数/subjectが2のときの申込数というのは table2から取得するのでしょうか? table1は使わなくてよい?
guest

回答1

0

ベストアンサー

「subjectが2のときの申込数」はCASEを使っては?

【MySQL入門】CASE式を使いこなす!条件による評価も非定形な集計も

投稿2022/06/03 03:18

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Misa

2022/06/03 04:01

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問