SQL文の作成方法
-cinq- 日付の列に以下のようなデータがあり
===============
日付 char[14]
===============
20070722120000
20070722120010
20070722120020
20070722120030
20070722120040
20070722120050
・
・
20070722124350
20070722124420
20070722124430
20070722124440
20070722124450
20070722124510
このレコードを
===============
日付 char[14]
===============
20070722120000
20070722124420
20070722124510
分単位毎で秒の1番小さいレコードを取得したいと思っていますが、
どのようなSQLを作成したらよいのかわかりません。
答え
ANo.1 文字列ですから、考え方としては日付の1文字目から
12文字を抽出して、その文字列に対してグループをかければ
できるかと。
SQLサーバーは、私は使ってないので、実験ができないのですが、
次のような感じでしょうか。
SELECT min(日付) FROM table_name
GROUP BY substring(日付, 1, 12)
ORDER BY min(日付)
(ORDER BY句は、付録です(笑))
回答
ご回答ありがとうございました。
上記のSQLを参考に確認を行いましたら上手く抽出できました。
SELECT b.日付, b.データ, b.フラグ
FROM テーブル名 AS a INNER JOIN
(SELECT MIN(日付) AS Expr1
FROM テーブル名
WHERE (日付 >= '20070723100000') AND (日付 <= '20070724095900')
GROUP BY SUBSTRING(日付, 1, 12)) AS b ON a.日付 = b.Expr1
ORDER BY b.日付
-cinq- 日付の列に以下のようなデータがあり
===============
日付 char[14]
===============
20070722120000
20070722120010
20070722120020
20070722120030
20070722120040
20070722120050
・
・
20070722124350
20070722124420
20070722124430
20070722124440
20070722124450
20070722124510
このレコードを
===============
日付 char[14]
===============
20070722120000
20070722124420
20070722124510
分単位毎で秒の1番小さいレコードを取得したいと思っていますが、
どのようなSQLを作成したらよいのかわかりません。
答え
ANo.1 文字列ですから、考え方としては日付の1文字目から
12文字を抽出して、その文字列に対してグループをかければ
できるかと。
SQLサーバーは、私は使ってないので、実験ができないのですが、
次のような感じでしょうか。
SELECT min(日付) FROM table_name
GROUP BY substring(日付, 1, 12)
ORDER BY min(日付)
(ORDER BY句は、付録です(笑))
回答
ご回答ありがとうございました。
上記のSQLを参考に確認を行いましたら上手く抽出できました。
SELECT b.日付, b.データ, b.フラグ
FROM テーブル名 AS a INNER JOIN
(SELECT MIN(日付) AS Expr1
FROM テーブル名
WHERE (日付 >= '20070723100000') AND (日付 <= '20070724095900')
GROUP BY SUBSTRING(日付, 1, 12)) AS b ON a.日付 = b.Expr1
ORDER BY b.日付