SQL 统计一列中各字符串出现的次数并排序

SQL 统计一列中各字符串出现的次数并排序

SQL 统计一列中各字符串出现的次数并排序

在数据分析和数据库操作中,经常需要对某一列中的字符串进行统计分析。统计每个字符串出现的次数并按照出现次数进行排序,可以帮助我们更好地理解数据分布情况和发现重要的信息。本文将介绍如何使用 SQL 对一列中的字符串进行次数统计和排序。

示例数据

在开始之前,我们先来了解一下示例数据。假设我们有一张名为 orders 的数据表,包含了客户的订单信息。其中包含了一个名为 product 的列,记录了客户所购买商品的名称。

order_id customer_id product
1 1001 Apple
2 1003 Orange
3 1002 Apple
4 1003 Banana
5 1001 Orange
6 1002 Banana

我们的目标是对 product 列中的字符串进行统计和排序。

字符串出现次数统计

统计一列中字符串的出现次数可以使用聚合函数 COUNT()GROUP BY 字句来实现。在本例中,我们使用 GROUP BYproduct 列进行分组,然后使用 COUNT() 统计每个商品出现的次数。

SELECT product, COUNT(*) as count
FROM orders
GROUP BY product;

上述 SQL 查询语句将返回如下结果:

product count
Apple 2
Orange 2
Banana 2

该结果列出了每个商品以及它们在 product 列中出现的次数。

次数排序

如果我们想按照商品出现的次数对结果进行排序,可以使用 ORDER BY 子句。默认情况下,ORDER BY 按照升序排列,如果想要降序排列,可以在列名后面加上 DESC 关键字。

SELECT product, COUNT(*) as count
FROM orders
GROUP BY product
ORDER BY count DESC;

上述 SQL 查询语句将返回如下结果:

product count
Apple 2
Orange 2
Banana 2

结果按照商品出现的次数降序排列。

添加计数百分比列

除了统计次数,我们还可以计算每个商品出现次数的百分比。首先,我们需要计算总次数,然后使用聚合函数 SUM() 计算每个商品出现次数的百分比。

SELECT product, COUNT(*) as count, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER() as percentage
FROM orders
GROUP BY product
ORDER BY count DESC;

上述 SQL 查询语句将返回如下结果:

product count percentage
Apple 2 33.3333
Orange 2 33.3333
Banana 2 33.3333

结果中的 percentage 列表示每个商品出现次数所占总次数的百分比。

筛选出现次数大于等于某个值的商品

有时候我们可能只关心出现次数大于等于某个特定值的商品。可以使用 HAVING 子句实现此目的。

SELECT product, COUNT(*) as count
FROM orders
GROUP BY product
HAVING COUNT(*) >= 2
ORDER BY count DESC;

上述 SQL 查询语句将返回如下结果:

product count
Apple 2
Orange 2
Banana 2

结果列出了出现次数大于等于 2 次的商品。

结束语

本文介绍了如何使用 SQL 统计一列中各字符串出现的次数并排序。首先,我们使用 COUNT() 函数和 GROUP BY 子句统计每个字符串出现的次数;然后,使用 ORDER BY 子句按照次数进行排序;接着,我们添加了计数百分比列来展示每个字符串出现次数的百分比;最后,通过使用 HAVING 子句筛选出现次数大于等于某个特定值的字符串。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程