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;

Supongo que te gusta

Origin blog.csdn.net/qq_43116031/article/details/131927077
Recomendado
Clasificación