このセクションでは、PostgreSQL で頻度表を作成する方法について説明します。PostgreSQL で頻度表を取得するには、GROUP BY 句と HAVING 句を併用します。これらの方法については、例を挙げて説明します。
- PostgreSQLで単一列を使用して頻度表を作成する
- 複数の列を使用して PostgreSQL で頻度表を作成する
- PostgreSQLテーブルの一意の行の頻度表を作成する
描写に使用した表は
examscore_dup:

単一の列に基づいて PostgreSQL で頻度表を取得します。
名前などの単一の列に基づいて頻度表を取得するには、次のクエリを使用します。
SELECT name, COUNT(*)
FROM examscore_dup
GROUP BY name
このクエリは、名前列ごとに行をグループ化し、それぞれの名前の出現回数をカウントします。これにより、「name」列に基づいて頻度表が作成されます。
出力:

出現回数に基づいて頻度表を取得するには、ORDER BYとDESCキーワードを使用して、出現回数の降順で頻度表を並べ替えます。
SELECT name, COUNT(*) as frequency
FROM examscore_dup
GROUP BY name
order by frequency DESC
出力:

複数の列に基づいて PostgreSQL で頻度表を取得します。
「name」や「studentid」などの複数の列に基づいて頻度表を取得するには、同様の方法を使用できます。
SELECT studentid,name, COUNT(*)
FROM examscore_dup
GROUP BY studentid,name;
このクエリは、name 列と studentid 列の両方で行をグループ化し、各組み合わせの発生回数をカウントします。その結果、複数の列 (name 列と studentid 列) の頻度表が生成されます。
出力:

出現回数に基づいて頻度表を取得するには、ORDER BYとDESCキーワードを使用して、出現回数の降順で頻度表を並べ替えます。
SELECT studentid,name, COUNT(*) as frequency
FROM examscore_dup
GROUP BY studentid,name
ORDER BY frequency DESC;
出力:

PostgreSQL のすべての列の頻度表: (一意の行の頻度表を取得します):
すべての列を考慮して各一意の行の頻度をカウントしたい場合は、次のクエリを使用できます。このクエリは、PostgreSQLテーブルの一意の行の頻度表を取得します。
SELECT studentid,name,sciencescore,mathematicsscore,language1score,language2score, COUNT(*) AS frequency
FROM examscore_dup
GROUP BY studentid,name,sciencescore,mathematicsscore,language1score,language2score
ORDER BY frequency DESC;
このクエリは、すべての列ごとに行をグループ化し、各一意の行の出現回数をカウントします。
出力:
