MySQL - 4、数据聚合和函数:

0、创建示例表并插入数据:

CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    customer_name VARCHAR(50) NOT NULL,
    order_date DATE,
    total_amount DECIMAL(10, 2)
);

INSERT INTO orders (customer_name, order_date, total_amount) VALUES
    ('lfsun-1', '2023-07-15', 120.50),
    ('lfsun-2', '2023-07-16', 85.20),
    ('lfsun-4', '2023-07-17', 320.75),
    ('lfsun-5', '2023-07-18', 210.00),
    ('lfsun-6', '2023-07-19', 450.60);

1、使用COUNT计算订单数量:

-- 查询订单的数量
SELECT COUNT(*) AS order_count FROM orders;

2、使用SUM计算总金额:

-- 查询所有订单的总金额
SELECT SUM(total_amount) AS total_amount FROM orders;

3、使用AVG计算平均金额:

-- 查询订单的平均金额
SELECT AVG(total_amount) AS average_amount FROM orders;

4、使用MAX和MIN查找最大和最小金额:

-- 查询订单的最大金额和最小金额
SELECT MAX(total_amount) AS max_amount, MIN(total_amount) AS min_amount FROM orders;

5、使用CONCAT连接字符串:

-- 查询订单信息,包含订单号和顾客姓名的组合字符串
SELECT CONCAT('Order #', order_id, ' - ', customer_name) AS order_info FROM orders;

6、使用SUBSTRING截取字符串:

-- 查询订单号的后三位
SELECT SUBSTRING(order_id, -3) AS last_three_digits FROM orders;

7、使用REPLACE替换字符串:

-- 查询顾客姓名中'1'替换为'11'的结果
SELECT REPLACE(customer_name, '1', '11') AS modified_name FROM orders;

8、使用ROUND对数字进行四舍五入:

-- 查询总金额按两位小数进行四舍五入的结果
SELECT ROUND(total_amount, 2) AS rounded_amount FROM orders;

9、使用TRIM去除字符串两侧的空格:

-- 查询顾客姓名去除前后空格后的结果
SELECT TRIM(customer_name) AS trimmed_name FROM orders;

10、使用DATE_FORMAT格式化日期:

-- 查询订单日期按'年-月-日'格式显示的结果
SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date FROM orders;

11、使用NOW获取当前日期和时间:

-- 查询当前日期和时间
SELECT NOW() AS current_datetime FROM orders;

12、使用RAND生成随机数:

-- 查询0到1之间的随机数
SELECT RAND() AS random_number FROM orders;

13、使用IF条件判断:

-- 查询订单总金额大于等于300的结果,如果满足条件返回'High Value',否则返回'Low Value'
SELECT customer_name, IF(total_amount >= 300, 'High Value', 'Low Value') AS value_category FROM orders;

14、使用CASE条件表达式:

-- 查询订单总金额,根据金额范围进行分类,返回不同的类别名称
SELECT
    customer_name,
    total_amount,
    CASE
        WHEN total_amount >= 400 THEN 'High Value'
        WHEN total_amount >= 200 THEN 'Medium Value'
        ELSE 'Low Value'
    END AS value_category
FROM orders;

15、使用CAST和CONVERT进行数据类型转换:

-- 查询订单总金额,将金额转换为整数类型
SELECT
    customer_name,
    CAST(total_amount AS SIGNED) AS total_amount_integer
FROM orders;

猜你喜欢

转载自blog.csdn.net/qq_43116031/article/details/131927077