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

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

新規登録して質問してみよう
ただいま回答率
85.35%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

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

Q&A

0回答

855閲覧

SQLの操作方法で手こずってます。

退会済みユーザー

退会済みユーザー

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

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

0グッド

1クリップ

投稿2021/05/17 10:51

編集2021/05/17 13:38

前提として、

歌手(singer )テーブルにはid カラムとnameカラム、
曲(music)テーブルではidカラムとnameカラム、singer_idカラム(singerのidと内部結合)があり、
好き(favorite)テーブルにはidカラムとmusic_id(musicのidと外部結合)、member_id(memberのid と結合されていますが、今回は使いませんので省略、このカラムはその曲が好きな人のidです。)

と言った3つのテーブルがあるとします。

今回悩んでいるのは曲名と、その曲が好きな人の合計を抽出したいです。

そこで自分は、

sql

1SELECT 2 singer.name, 3 COALESCE(COUNT(favorite.music_id) ,0) 4FROM 5 music 6LEFT OUTER JOIN 7 favorite ON favorite.music_id = music.id 8GROUP BY 9 music.id 10;

そこで質問です。

GROUP BYはmusic.id にすべきか、music.nameにすべきか、どちらが良いのでしょうか??

ダメな理由もお聞かせくださると幸いです。

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

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

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

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

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

m.ts10806

2021/05/17 10:58

PostgreSQLとSQL Serverはそれぞれ別の製品ですが、両方されてるのでしょうか。 あと、メンターがいるならメンターにヒントもらうべきでは? 赤の他人が応えるにしても、テーブル定義や想定のデータ、「効率の良い書き方の方針」が分からないとそのメンター納得しないのでは。
退会済みユーザー

退会済みユーザー

2021/05/17 11:04

ごめんなさい! postgreSQLを使っております! 今日ずっとこれに引っかかっておりまして、そのまま終業。心の中でモヤモヤがすごいんです。 メンターの方は、小さなヒントを少しずつ教えてくださる方で、他の書き方もあって、そっちを使って欲しいとのことでした。 そのまま就業時間になってしまい、今に至ります。
sazi

2021/05/17 11:16

> もっと効率の良い書き方?があるらしいです。 単に別な書き方があるというくらいじゃないですか? group by しない書き方もあるけど、効率が良いとは断言できませんし。
退会済みユーザー

退会済みユーザー

2021/05/17 11:21

singer.id を使ってsinger.nameを出す的なことだったと思います、、、 その辺ちょっとわからないです。
hentaiman

2021/05/17 11:26

メンターって社内で教育してくれる人ですよね? 求めているのは調査して考える力だと思うので自力で調べるのが良いと思います また、不明点を(こんなWEBサイトにではなく)質問をされる事も期待していると思います
m.ts10806

2021/05/17 13:04

質問は編集できます。 >そのまま就業時間に 仕事遅番なんですか?
退会済みユーザー

退会済みユーザー

2021/05/17 13:39

少し質問を変えました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問