- PR -

Postgersにて 集計結果件数を知りたい

1
投稿者投稿内容
よっちん
会議室デビュー日: 2006/10/06
投稿数: 2
投稿日時: 2006-10-06 16:08
初めて質問させていただきます。

 Select a.tokuicd,
a.tantcd,
sum(a.urikin)
from a
where a.tokuicd between 1 and 10000
group by a.tokuicd,
a.tantcd
offset limitt 100

上記sqlを発行したと同時に、
全体取得件数を知りたいのですが。
なにか良い方法はないでしょうか?
(件数=100件ではなく offseti limittがない状態での件数が知りたい)

 ご存知の方いらっしょいましたらご教授願います
99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2006-10-07 07:31
select 文の項目に追加できませんか?

select
(select count(*) from a ...), 全体取得件数
a.tokuicd,
a.tantcd,
sum(a.urikin)


[ メッセージ編集済み 編集者: 99ri 編集日時 2006-10-07 07:41 ]
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-07 20:20
group by a.tokuicd
だから
(select count(distinct tokuicd)
where a.tokuicd between 1 and 10000 )
と結合させたら?
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-09 14:20
引用:

99riさんの書き込み (2006-10-07 07:31) より:
select 文の項目に追加できませんか?

select
(select count(*) from a ...), 全体取得件数
a.tokuicd,
a.tantcd,
sum(a.urikin)


[ メッセージ編集済み 編集者: 99ri 編集日時 2006-10-07 07:41 ]



group化してる関係で
非相関なスカラー問い合わせでリテラル値なんだけど
DBによっちゃエラーやね

Oracleはエラーだけど
Postgreはどうだろ?

[ メッセージ編集済み 編集者: ぷさいくろう 編集日時 2006-10-10 07:00 ]
よっちん
会議室デビュー日: 2006/10/06
投稿数: 2
投稿日時: 2006-10-26 16:43

早速の回答ありがとうございます。

私が「主旨」を書いてなかったことに問題が
あり申し訳ございません。
実はチューニング作業をしていまして、
回答していただいた構文で行くと、
FULL検索が走ってしまい時間が掛かっちゃう訳です。

 結果件数を取得する良い方法で関数を使ってカーソル件数を
 取得しようと試みてたのですが、解らずじまいです・・・

なにか良い方法が無いか・・・更なるご教授をお願い致します
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-10-30 00:34
引用:

よっちんさんの書き込み (2006-10-26 16:43) より:
 結果件数を取得する良い方法で関数を使ってカーソル件数を
 取得しようと試みてたのですが、解らずじまいです・・・


COUNTを使います。COUNT(*)するのではなく、インデックスが使われているフィールド名を指定してcount(hoge)の様に記述するのがコツです。

パフォーマンスチューニングについて聞きたいなら、今のSQL文と、インデックスの付与状況、実行計画を記載するのが近道です。どんなテーブル定義かもわからないのに、どうやったら早くなりますか?と聞かれても答えようが・・・。
1

スキルアップ/キャリアアップ(JOB@IT)