最初に: ご覧いただきありがとうございます。お時間をいただきありがとうございます。
ポイントへ:
スキーマ: myTable 用
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2012 01 01 01 99.9
1 2012 01 01 02 65.2
1 2012 01 01 03 -88
7 2012 02 08 21 9.08
1 2012 01 01 09 99.913
1 2013 01 01 01 99.999999
基本的に、これは 2 つの値nonUniqueID
でありnumericValue
、詳細な日付があります。
ここで、このデータベース全体で最大の日付を 1 つ取得する必要があります。上記のデータを使用すると、期待される結果は次のようになります。
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2013 01 01 01 99.999999
これは SQLite であるため、MAX() を数回使用する必要があることはわかっています。順序は、MAX(YEAR)、MAX(MONTH)、MAX(DAY)、MAX(HOUR) の順である必要があります。
基本的に、クエリは次のように機能します (クエリを作成するための SQL 構文について十分に知りません)。
- YEAR が最も高いすべてのレコードを検索する
- このセットから、MONTH が最も高いすべてのレコードを検索します
- このセットから、DAY が最も高いすべてのレコードを検索します
- このセットから、HOUR が最も高いすべてのレコードを検索します
- このレコードを返す
これは、動作しない別の StackExchange の質問から適応した SQL です。
Select * From (
Select max(YEAR) as Y FROM myTable
union
Select max(MONTH) as M FROM myTable
union
Select max(DAY) as D FROM myTable
union
Select max(HOUR) as H FROM myTable
) myTable;
返す
Y
-----
21
08
02
2013
これを予想アウトと比較します。
nonUniqueID YEAR MONTH DAY HOUR numericValue
1 2013 01 01 01 99.999999
4 つの値を持つ 1 つのレコードではなく、4 つのレコードが返されました。
誰かが私の質問を手伝ってくれませんか? ありがとう!