
No.2ベストアンサー
- 回答日時:
>5分以上データが取得できなかった時にもその時刻のデータを直前のデータで補完したいです。
テーブルの中身が2009/06/01 00:00:00の1レコードしかなかったと仮定してください。
指定時刻が2009/06/01 00:00:00であった場合(これ以降5分おきに取得)、
2009/06/01 00:00:00
2009/06/01 00:00:00
2009/06/01 00:00:00
2009/06/01 00:00:00
・・・・・
2009/06/01 00:00:00
と(2009/06/30 23:55:55までの)8,640件を返したいという意味ですか?
(テーブルの中身が1件もない場合は8,640件のNULLが返される)
だとすると、1クエリでの実行は無理です(1件しかないデータを8,640件にすることはできないから)。
Transact-SQLのコードを書いてください(これもまた一例ですが)。。
DECLARE @T datetime--指定時刻
SET @T='2009/06/01 00:00:00'
DECLARE @WT datetime
DECLARE @WTBL TABLE (T datetime)
SET @WT=@T
WHILE (MONTH(@WT)=MONTH(@T))
BEGIN
INSERT INTO @WTBL VALUES (@WT)
SET @WT=DATEADD(n,5,@WT)
END
SELECT
(SELECT MAX([時刻]) FROM TIMETBL WHERE [時刻]<=t.T)
FROM @WTBL t
この回答への補足
ありがとうございます。
>(2009/06/30 23:55:55までの)8,640件を返したいという意味ですか?
>(テーブルの中身が1件もない場合は8,640件のNULLが返される)
やりたいことはそういうことです。
VB2008からSQL Server2008にデータを取りにいきます。
プログラムで5分ごとの時間が入った配列を作って
1レコードずつ素直に検索しにいくのとどっちが早いでしょうか?
8,640件の検索が最大で16セット発生します。
LINQというやつでもだめなのかな~。
No.3
- 回答日時:
>プログラムで5分ごとの時間が入った配列を作って1レコードずつ素直に検索しにいくのとどっちが早いでしょうか?
8,640回クエリを実行しようと思っているならば、圧倒的にその方が遅いです。
8,640件×16のデータを取ってきて、最終的に必要なのが何か読めませんので、なんとも言えませんが、
8,640件×16のデータ全部を使わず、絞り込むのであれば、8,640件×16のデータを取ってくること自体がナンセンスです。
最初から必要なものだけ拾ってくればいいと思います。
>LINQというやつでもだめなのかな~
LINQは処理速度をアップするためのものではありませんよ。
No.1
- 回答日時:
あくまで一例ですが。
。データを指定時刻からの経過時間で5分単位のグループにして(ただし、ちょうど5分のボーダーのところは下のグループに含めるために1引く)、その中で逆順に連番を振り、各グループの1番目だけ抽出する。
SELECT [時刻]
FROM
(SELECT *,
ROW_NUMBER() OVER (PARTITION BY (DATEDIFF(n,'指定時刻',[時刻])-1)/5 ORDER BY [時刻] DESC) SEQ
FROM TIMETBL
WHERE [時刻]>='指定時刻') tmp
WHERE SEQ=1
この回答への補足
ありがとうございます。
だいたいできている気がしますが、
1日の00:00が取得できないことと
5分以上データが取得できなかった時にも
その時刻のデータを直前のデータで補完したいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- 日本株 楽天RSS2での移動平均の取得について 1 2022/07/28 21:48
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) マクロについて教えてください 2 2023/06/09 16:01
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessで複数年度のデータを蓄...
-
Macでの0データ書き込み消去に...
-
c言語の問題です。これを踏まえ...
-
iPhoneのシステムデータ、3日前...
-
Orcle10gのDATAPUMPとFASTUNLOA...
-
DBソフト比較
-
銀行系DBの堅牢度
-
Postgresのデータ許容量について
-
AS400を使ったインフラ構築
-
区分ごとに2番目に新しいデー...
-
応用情報技術者試験とccnaを持...
-
自分が今使っているPCのbitを知...
-
コメント欄の更新間隔
-
「データが反映されるのが遅い...
-
別のシステムのデータを引っ張...
-
システム開発における各知識に...
-
基幹システムの開発方法につい...
-
ITa、ITbという言葉の意味を教...
-
CGIを設置するには何が障害なん...
-
システム更新とシステム更改の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Null同士の結合
-
教えて頂けないでしょうか
-
accessで複数年度のデータを蓄...
-
iPhoneのシステムデータ、3日前...
-
SELECTでn行目から最後もしくは...
-
c言語の問題です。これを踏まえ...
-
Oracleクライアントの共存方法...
-
アップデート処理時間について
-
トランザクション処理について
-
IMPORT処理速度
-
DBの更新と更新後のDBの参照
-
アクセスでこんな条件って可能...
-
超大規模システムはどのように...
-
Web上のDBをAccessで処理したい
-
AccessとSQL Serverの連携について
-
SQL サーバのCPU使用率が高い
-
アクセスと統一伝票
-
Orcle10gのDATAPUMPとFASTUNLOA...
-
テーブル設計において
-
Apache, PHP, MySQLの役割
おすすめ情報