web-dev-qa-db-ja.com

SQL-カウントのパーセンテージを計算(列)

イベント列に何かが表示される回数をカウントする次のコードがあります。

SELECT event, count(event) as event_count   
FROM event_information
group by event

event   event_count
a       34
b       256
c       45
d       117
e       3

このようにして、各行の割合を計算できるようにしたいと思います。

event   event_count event_percent
a       34          7.47
b       256         56.26
c       45          9.89
d       117         25.71
e       3           0.66
6
Dean Flaherty
SELECT event, 
       count(event) as event_count,
       count(event) * 100.0 / (select count(*) from event_information) as event_percent
FROM event_information
group by event
11
juergen d

ほとんどのSQLダイアレクトは、ANSI標準ウィンドウ関数をサポートしています。したがって、クエリは次のように記述できます。

select event, count(*) as event_count,
       count(*) * 100.0/ sum(count(*)) over () as event_percent
from event_information
group by event;

通常、ウィンドウ関数は、サブクエリや他のメソッドよりも効率的です。

9
Gordon Linoff