もしかしたらすごく簡単なことかもしれませんが、
教えて下さい。
以下のテーブルから、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.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です。
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 …
お探しの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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
複数テーブルのMAX値の行データを取得したい
Oracle
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
複数列の最大値を求めたい
SQL Server
-
-
4
複数テーブルにまたがるmax
PostgreSQL
-
5
2つのテーブルを結合して最大値を取得したい
SQL Server
-
6
timestampのデータはどのようにして入力
PostgreSQL
-
7
文字列を time 型に変換するには。
PostgreSQL
-
8
単純なselectが遅くなるのですが、理由がサッパリわかりません
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL 複数条件を設定
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
認知心理学で言うスクリプトとは?
-
Accessで今日から5日後
-
UPDATEで既存のレコードに文字...
-
pandasでsqlite3にテーブル作成...
-
truncate tableを使って複数の...
-
viewの性能
-
timestampのデータはどのように...
-
Accessで最新のレコード...
-
テーブル名が可変の場合のクエ...
-
同一テーブル内での比較(最新...
-
Excelでしりとりを作る方法
-
ACCESSのVBAにてExcelに行...
-
Activation codeとは
-
SELECTした結果に行番号を求めたい
-
データ無し時は空白行にしたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
joinの場合のテーブル名の別名...
-
2つの列からの最大値取得
-
複数行の結果を単一列に連結
-
SQLのこと:distinctして並び替...
-
postgreSQLのupdateについて
-
access2000のクエリについて
-
SQL文の長さ制限について
-
SQLで期間をずらした集計処理
-
SQL 複数条件を設定
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
テーブル名が可変の場合のクエ...
-
エラーを起こす方法
-
オラクルのUPDATEで複数テーブル
-
truncate tableを使って複数の...
-
結合したテーブルをSUMしたい
-
Accessで今日から5日後
おすすめ情報