
もしかしたらすごく簡単なことかもしれませんが、
教えて下さい。
以下のテーブルから、date1もしくはdate2が最新の日付のデータを取得するSQL文の書き方がわかりません。
(以下の例では、bbbが取得したい)
name date1 date2
---- -------- ----------
aaa 20041110 (NULL)
---- -------- ----------
bbb (NULL) 20041111
---- -------- ----------
ccc 20041109 (NULL)
---- -------- ----------
ddd (NULL) 20041109
---- -------- ----------
# 図がずれてわかりづらいかと思いますが...
date1,date2でそれぞれmaxでname取得後に比較するしかないのでしょうか?
環境は、Redhat9+Postgresql-7.3です。
No.2ベストアンサー
- 回答日時:
select max(dateall) from (select date1 as dateall from table_name union select date2 as dateall from table_name) as temp;
date1 と date2 を取得結果を union でくっつけてから最大値を取得するのはどうでしょうか?
列名に別名をつけてるのは私がわかり易くするためで以下でも date1 と date2 の最新を取得できると思います。
select max(date1) from (select date1 from table_name union select date2 from table_name) as temp;
No.3
- 回答日時:
回答No.1の
topはMS-ACCESSでの関数です。
このtopと同様のことを実現するのが、OFFSET、LIMITです。
以下のURLを参考にしてみてください。
参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
No.1
- 回答日時:
この例では、必ずdate1かdate2のどちらかにしか日付は入らず、もう片方はNULLになるのでしょうか?
だとすれば、もう少し簡単になると思いますが、それを保証しないものとしてみます。
あと、postgresql本体での検証はできてないので、参考としてください。
select top 1 * from table
order by
case
when coalesce(date1, '1999-01-01') < coalesce(date2, '1999-01-01') then date1 else date2 end desc
もし、どちらかが必ずNULLなら、
select top 1 * from table
order by
case when coalesce(date1, date2) end desc
で、いけると思います。
この回答への補足
topというものが、どうもうまくいきません。
Postgresqlのページを見ても、使い方がよくわからないのですが、どういったものなのでしょうか?
# イメージ的には、先頭の1つのみデータを表示するような感じですが。。。
あと、date1,date2のどちらかが必ずNULLと考えていますが、今後変わる可能性はあるので、必ずしもNULLではないと思っていただいてOKです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MYSQL エラー 2 2022/10/18 11:37
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- MySQL mysqlの結合について教えてください 1 2022/05/19 15:13
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つの列からの最大値取得
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
SQLサーバに対するSQL文で抽出...
-
CSVファイルを読み込んでテーブ...
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
timestampのデータはどのように...
-
accessのデータをoracleへinser...
-
sqlに記述できない文字
-
同一テーブル内での比較(最新...
-
オラクルのUPDATEで複数テーブル
-
Accessで最新のレコード...
-
selectの単純繰り返し
-
PostgreSQL serial型の質問
-
データ削除とSQL*Loaderでのイ...
-
ACCESSのVBAにてExcelに行...
-
データ無し時は空白行にしたい...
-
oracle ora-02298
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数行の結果を単一列に連結
-
2つの列からの最大値取得
-
SQLのこと:distinctして並び替...
-
SQL 複数条件を設定
-
SQLで期間をずらした集計処理
-
order byで並び変えし最大値の...
-
SQLについて
-
SQLでのcount方法
-
同一フィールドの違う値ごとに...
-
SQLで2年連続で値が上昇した年...
-
joinの場合のテーブル名の別名...
-
Postgresql Mecabでの解析について
-
CREATE VIEWについて
-
月に対応するフィールドを抽出...
-
sql,union,これはエラーですか...
-
PostgreSQL で自動採番する方法
-
前後のレコードを取得する
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
おすすめ情報