このセクションでは、PostgreSQL で頻度表を作成する方法について説明します。PostgreSQL で頻度表を取得するには、GROUP BY 句と HAVING 句を併用します。これらの方法については、例を挙げて説明します。

  • PostgreSQLで単一列を使用して頻度表を作成する
  • 複数の列を使用して PostgreSQL で頻度表を作成する
  • PostgreSQLテーブルの一意の行の頻度表を作成する

描写に使用した表は

examscore_dup:

PostgreSQLで頻度表を作成する 1


単一の列に基づいて PostgreSQL で頻度表を取得します。

名前などの単一の列に基づいて頻度表を取得するには、次のクエリを使用します。

SELECT name, COUNT(*)
FROM examscore_dup
GROUP BY name

このクエリは、名前列ごとに行をグループ化し、それぞれの名前の出現回数をカウントします。これにより、「name」列に基づいて頻度表が作成されます。

出力:

PostgreSQLで頻度表を作成する 2

出現回数に基づいて頻度表を取得するには、ORDER BYとDESCキーワードを使用して、出現回数の降順で頻度表を並べ替えます。

SELECT name, COUNT(*) as frequency
FROM examscore_dup
GROUP BY name
order by frequency DESC

出力:

PostgreSQLで頻度表を作成する 3

複数の列に基づいて PostgreSQL で頻度表を取得します。

「name」や「studentid」などの複数の列に基づいて頻度表を取得するには、同様の方法を使用できます。

SELECT studentid,name, COUNT(*)
FROM examscore_dup
GROUP BY studentid,name;

このクエリは、name 列と studentid 列の両方で行をグループ化し、各組み合わせの発生回数をカウントします。その結果、複数の列 (name 列と studentid 列) の頻度表が生成されます。

出力:

PostgreSQLで頻度表を作成する 4

出現回数に基づいて頻度表を取得するには、ORDER BYとDESCキーワードを使用して、出現回数の降順で頻度表を並べ替えます。

SELECT studentid,name, COUNT(*) as frequency
FROM examscore_dup
GROUP BY studentid,name
ORDER BY frequency DESC;

出力:

PostgreSQLで頻度表を作成する 5

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;

このクエリは、すべての列ごとに行をグループ化し、各一意の行の出現回数をカウントします。

出力:

PostgreSQLで頻度表を作成する 6