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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
SQLで一定時間周期毎の抽出方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracleクライアントの共存方法...
-
システム管理について
-
データベースプログラミング言...
-
プログラムからODBCデータソー...
-
Orcle10gのDATAPUMPとFASTUNLOA...
-
銀行系DBの堅牢度
-
c言語の問題です。これを踏まえ...
-
iPhoneのシステムデータ、3日前...
-
Apache, PHP, MySQLの役割
-
別のシステムのデータを引っ張...
-
システム連携?システム連係?
-
「管理」「運用」「保守」の意...
-
システムインテグレーションと...
-
事務コンについて相談させてく...
-
保守契約は必要でしょうか?
-
クライアントサーバシステム ...
-
昇進論文について
-
ASP.NETで画面の初期化される(...
-
タブレットにナビゲーションバ...
-
DCS(分散計装)について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのシステムデータ、3日前...
-
accessで複数年度のデータを蓄...
-
Null同士の結合
-
SELECTでn行目から最後もしくは...
-
教えて頂けないでしょうか
-
5分ごとのデータ取得
-
オラクルのテーブルの割当サイ...
-
AccessとSQL Serverの連携について
-
セブンイレブンの7payの開発費...
-
ビューのWITH READ ONLYとWITH ...
-
Postgresのデータ許容量について
-
プログラムからODBCデータソー...
-
Oracleクライアントの共存方法...
-
set timing
-
ナンバーディスプレイで住所を判別
-
Access→Oracleへ更新クエリで、...
-
Orcle10gのDATAPUMPとFASTUNLOA...
-
区分ごとに2番目に新しいデー...
-
アクセスと統一伝票
-
DBの更新と更新後のDBの参照
おすすめ情報