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

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

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

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

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

Q&A

解決済

3回答

2347閲覧

GROUP BYについて

tuntun

総合スコア35

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

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

0グッド

0クリップ

投稿2015/05/28 07:24

編集2015/05/28 08:32

DB:NAME
W X Y Z

1 a 0001 0002
1 b 0002 0001
1 c 0003 0003
2 a 0003 0005
2 b 0002 0006
2 c 0001 0004

というDBがあり、Wでグループ化したいのですが、条件としてそのグループの中でXの値が最も小さい行を表示するというSQLを作成したいのですが、
自分が作成したSQLは、

lang

1 select W,MIN(X),MIN(Y),MIN(Z) from NAME group by W;

と入力すると、
W X Y Z

1 a 0001 0002
2 a 0001 0004
このようになりました。
この表を
W X Y Z

1 a 0001 0002
2 a 0003 0005
という風にXの値がaの行を抽出したいのですが、どのようにSQLを作成したらよいでしょうか?

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

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

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

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

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

Tak1wa

2015/05/28 07:31

期待する結果は以下では? 1 a 0001 0002 2 a 0003 0005
tuntun

2015/05/28 08:22

すみません。そうでした。 W X Y Z ---------------------------- 1 a 0001 0002 2 a 0003 0005
kutsulog

2015/05/29 01:26

2 a 0003 0005のデータがない場合、期待するデータは以下のどちらでしょうか? 1. 1 a 0001 0002 と 2 b 0002 0006 2. 1 a 0001 0002 のみ ベストアンサーに指定された回答ですと2.になると思いますが 質問からは1.を期待しているように読み取れます
kutsulog

2015/05/29 01:28

すいませんベストアンサーで1.になりますね。忘れてください
guest

回答3

0

質問を読む限りこんな感じ?

lang

1select W, X,Y,Z from NAME 2where X in (select MIN(X) from NAME group by W)

投稿2015/05/28 07:50

sho_cs

総合スコア3541

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

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

0

ベストアンサー

lang

1SELECT 2 W, 3 X, 4 Y, 5 Z 6FROM 7 (SELECT 8 W, 9 X, 10 Y, 11 Z, 12 ROW_NUMBER() OVER (PARTITION BY W ORDER BY X) RNUM 13 FROM 14 NAME 15 ) 16WHERE 17 RNUM = 1

投稿2015/05/28 07:46

Tak1wa

総合スコア4791

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

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

0

lang

1select W, X,MIN(Y),MIN(Z) from NAME 2WHERE X = 'a' 3group by W, X;

投稿2015/05/28 07:29

編集2015/05/28 07:30
kantomi

総合スコア295

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

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

tuntun

2015/05/28 07:35

すいません。私の質問の仕方が悪かったのですが、 例えば、Xの値が時間が入っていてaのように正確な値がわからなかった時はどうしたらいいでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問