
PostgreSQLでdistinctの使い方についての質問です。
t_mainのDDATEカラム(DATE)に
DDATE
============================
20030929
20030930
20031001
20031002
・
・
・
というデータが入っています。
このデータのうち、年月でdistinctした
データが欲しいので、以下のようにSQLを組みました。
===========================================
select distinct substring(DDATE from 1 for 6) from t_main order by DDATE
これでは値が取得できなかったので、次に
===========================================
select distinct TO_CHAR(DDATE,'YYYYMM') from t_main order by DDATE
としましたが、これも値が返ってきません。
上手に年月でdistinctできる方法を教えてください。
欲しいのは
========
200309
200310
という結果です。
宜しくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
substring(DDATE from 1 for 6)は日付表示形式に依存するのでおいといて…。
order byでDDATE順にせよと指定されているけれどもselect項目にDDATEがありません。あるのはDDATEをto_charで加工した結果の文字列項目です。なので、その文字列項目をorder byに指定します。
select distinct to_char(DDATE,'YYYYMM') as ym from t_main order by ym;
アドバイスありがとうございます。
Oracleの場合、select句で選択していない列でもorder byに指定する事が可能なのですが、PostgreSQLは違うのでしょうか?
PostgreSQLはほとんど触った事が無いので。。
試しにエイリアスをつけてみましたがやはりダメでした。
ちなみにto_char(DDATE,'YYYYMM')でgroup by しても値は返ってきませんでした。
何か良い方法は無いでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Date型の列から年月だけを...
-
postgreSQLで更新後のデータを...
-
抽出結果を分割して取得
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
差し込み後、元データを変更し...
-
Outlook 送受信エラー
-
エクセルのxans.について
-
ソフトバンクの無料着うたのお...
-
特定の文字列で列を区切るには?
-
no appleとno applesの違いは?
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
php+mysqlで複数選択削除について
-
外部参照してるキーを主キーに...
-
エクセルに見えない文字(JISX0...
-
カーソル0件の時にエラーを発生...
-
VMware Player でCD-ROMドライ...
-
列のヘッダーを含めるのをデフ...
-
SELECT 文 GROUP での1件目を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Date型の列から年月だけを...
-
抽出結果を分割して取得
-
select文の書き方「半角カナ+...
-
Select結果をSelect
-
postgreSQLで更新後のデータを...
-
レコード件数のちょうど半分をe...
-
取得行数の指定
-
年月でdistinctしたい(PostgreSQL)
-
SQL(SQLite)である範囲のデータ...
-
2回目のselect文
-
text型のデータをintegerにキャ...
-
PL/pgSQLの返り値の取得方法に...
-
SQL文の中に引用符を入れたい
-
round関数について
-
複数レコードのテーブルである...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
特定の文字列で列を区切るには?
おすすめ情報