[pgsql-jp: 31193] Re: 複数の入力それぞれの最新の値を求めるSQL 文
Hiroya Torii
torii @ bl.mmtr.or.jp
2003年 10月 8日 (水) 21:36:52 JST
こんばんは、鳥居です
"AOKI KAZUYUKI" <aoki-kazuyuki @ nifty.com> wrote:
> SELECT * FROM test_tbl WHERE id IN (
> SELECT min(id) FROM test_tbl
> GROUP BY termid,dt
> ORDER BY dt
> LIMIT X )
>
> X には端末台数を入力では、いかがでしょうか?
これだとtermidごとの最新は得られませんでした・・
結果のなかに同じtermidのものが複数出てしまいました。
斎見 浩平 <saimi_at_qs @ ybb.ne.jp> wrote:
ちょっとインデントを変えさせていただきました。
> datetimeはtimestamp w/o timezoneと解釈させていただきます。
> また、話を簡単にさせてもらうために val >= 0とさせていただきます。
>
> select termid,
> to_number(
> substring(
> max(
> to_char(dt, 'YYYYMMDDHH24MISSUS') || to_char(val, '0000000000')
> )
> from 22 for 10 )
> , '0000000000')
> as lastval
> from test_tbl
> group by termid;
>
> ではいかがでしょう?
これはすさまじい^^; こういうのは思いつきませんでした。
|| を最初「または」と読んじゃって混乱しましたが、文字列連結
なんですね。SQLでの文字列処理はよく知らなくて・・・
ちなみにSQLの世界ではこういうのは結構普通に行われるのでしょ
うか?
ともかく、いろいろ考えていただきありがとうございます。
--
__________
(_ _______()
__||_[]_||__
(___________()
||‡‡|| 鳥居 大哉 (Hiroya TORII)
|| ||
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
pgsql-jp メーリングリストの案内