Q&A
前提・実現したいこと
Postgresqlにて,Bitcoinのトランザクションデータを基にデータを解析中です.1年間での総ブロック発行数におけるトランザクションの平均値を求めたいです.
使用しているテーブルと列は以下です.
blocks table
id, hash, timestamp
transactions table
id, hash, blockID
block内に複数のトランサクションを包含しており,blockIDはblocks tableと重複ありで結びついています.
発生している問題・エラーメッセージ
下記のようなSQL文を作成しましたが,平均値が1になります.おそらくINNER JOINでカラム数が同じになってしまったのでCOUNT1, COUNT2が同数になってしまっていると思うのですが,どのようにしたら適切に平均値を出せるでしょうか?
該当のソースコード
SQL
1SELECT count1/count2 2FROM ( 3 SELECT COUNT(A.id) AS count1, COUNT(B.id) AS count2 4 FROM transactions AS A INNER JOIN blocks AS B ON A.blockID = B.id 5 WHERE B.time BETWEEN '1262271600' AND '1293807599' 6) AS hoge;
試したこと
最初はサブクエリを使わずに直接割算をしようと思いましたが,同一SQL内での2つのCOUNTを活用する方法が分からず,サブクエリを使いました.しかし,それぞれの情報をうまく引き出して平均を出すことができません.AVG等の関数も考えましたが,一旦計算を挟んでいるのでネストすることができませんでした.
よろしくお願いします.
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2020/02/27 15:39