sqlite分组查询

sqlite分组查询

sqlite分组查询

在SQLite数据库中,分组查询是用来对数据进行分组统计和聚合操作的一种查询方式。通过分组查询,我们可以根据不同的条件对数据集进行分类,并对每个分类进行统计、计数或其他操作。

语法

SQLite中的分组查询语法如下:

SELECT column_name(s), aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column_name;
  • column_name(s): 要查询的列名
  • aggregate_function: 聚合函数,如COUNT(), SUM(), AVG()
  • table_name: 表名
  • condition: 查询条件
  • GROUP BY column_name: 根据哪一列进行分组

示例

假设我们有一个表products,存储了商品的信息,包括字段category(商品类别)、price(价格)和quantity(数量),我们可以通过分组查询统计每个类别的商品数量和总价。

CREATE TABLE products (
    id INTEGER PRIMARY KEY,
    name TEXT,
    category TEXT,
    price REAL,
    quantity INTEGER
);

INSERT INTO products (name, category, price, quantity) VALUES
    ('iPhone 12', 'Phone', 799, 10),
    ('Samsung Galaxy S20', 'Phone', 699, 8),
    ('iPad Pro', 'Tablet', 999, 5),
    ('MacBook Pro', 'Laptop', 1499, 3),
    ('AirPods', 'Accessories', 199, 20);

SELECT category, COUNT(*) AS num_products, SUM(price) AS total_price, SUM(quantity) AS total_quantity
FROM products
GROUP BY category;

运行以上SQL语句,我们会得到每个商品类别的统计信息:

category     | num_products | total_price | total_quantity
-------------|--------------|-------------|---------------
Phone        | 2            | 1498        | 18
Tablet       | 1            | 999         | 5
Laptop       | 1            | 1499        | 3
Accessories  | 1            | 199         | 20

分组筛选

除了基本的分组统计之外,我们还可以在分组查询中进行筛选。例如,我们可以筛选出每个类别中数量大于5的商品:

SELECT category, COUNT(*) AS num_products, SUM(price) AS total_price, SUM(quantity) AS total_quantity
FROM products
GROUP BY category
HAVING total_quantity > 5;

运行以上SQL语句,我们会得到数量大于5的商品类别统计信息:

category     | num_products | total_price | total_quantity
-------------|--------------|-------------|---------------
Phone        | 2            | 1498        | 18
Accessories  | 1            | 199         | 20

小结

通过上面的介绍,我们了解了SQLite中的分组查询语法和示例。分组查询是数据分析和统计中常用的操作,能帮助我们更好地理解数据分布和统计结果。在实际应用中,我们可以根据具体的需求和业务场景,灵活运用分组查询来获取所需的统计信息。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程