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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

496閲覧

MySQLのGROUP BYについて質問です。

lihgfb

総合スコア11

MySQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/08/26 04:18

MySQLのGROUP BYについて質問です。

列a列b
aaa1
aaa1
bbb0
bbb0
bbb0
aaa1

このテーブルを

MySQL

1SELECT a, b FROM table 2GROUP BY a, b = 1
列a列b
aaa1
bbb0
bbb0
bbb0

このようなクエリで上の表にしたいのですが

列a列b
aaa1
bbb0

これになってしまいます。

b = 1がおかしいのだと思うのですがどのようにかけばよいのかわかりません。
教えていただけないでしょうか。

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

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

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

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

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

maisumakun

2019/08/26 04:22

データベースに入っている列は、この2列だけですか?
lihgfb

2019/08/26 04:23

実際のデータベースには複数列存在します。
maisumakun

2019/08/26 04:26

ID列のようなPRIMARY KEYは付いていますか?
lihgfb

2019/08/26 04:34 編集

各テーブルにidというpkがついてます。 下が実際に行いたいクエリになります。 SELECT ti.id, ts.xxx FROM tw INNER JOIN ts ON tw.ts_id = ts.id INNER JOIN ti ON ts.ti_id = ti.id GROUP BY ti.id, ts.xxx = 1
guest

回答2

0

ベストアンサー

ちょっと何をしたいかわかりかねますが
こんな感じなのですか?

SQL

1create table tbl(a varchar(10),b int); 2insert into tbl values 3('aaa',1), 4('aaa',1), 5('bbb',0), 6('bbb',0), 7('bbb',0), 8('aaa',1); 9 10select distinct a, b from tbl where b=1 11union all select a,b from tbl where b<>1

投稿2019/08/26 04:30

yambejp

総合スコア114784

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

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

lihgfb

2019/08/26 04:43

ありがとうございました! やりたかった事はそれです。 助かりました。
guest

0

実現したい内容は
・列bが1だったら、列aでGroup Byして出したい
・列bが1でないものはマージせずにそのまま出したい
ということですか?

もしそうなら、
SELECT a, b FROM table
WHERE b = 1
GROUP BY a
の結果を
SELECT a, b FROM table
WHERE b <> 1
で持ってきた結果セットと UNION ALL でくっつければよいと思います。

投稿2019/08/26 04:36

adele

総合スコア15

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

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

lihgfb

2019/08/26 04:44

その方法で解決出来ました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問