聚合函数
-- 聚合函数示例
SELECT COUNT(*) AS total_rows FROM your_table; -- 计算行数
SELECT SUM(column_name) AS total_sum FROM your_table; -- 计算总和
SELECT AVG(column_name) AS average_value FROM your_table; -- 计算平均值
SELECT MIN(column_name) AS min_value FROM your_table; -- 找出最小值
SELECT MAX(column_name) AS max_value FROM your_table; -- 找出最大值
-- 使用聚合函数进行条件统计
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department; -- 按部门统计员工数量
-- 使用聚合函数计算百分比
SELECT department, COUNT(*) AS total_employees,
COUNT(*) / (SELECT COUNT(*) FROM employees) * 100 AS percentage
FROM employees
GROUP BY department; -- 计算每个部门的员工百分比
-- 使用聚合函数处理NULL值
SELECT AVG(IFNULL(salary, 0)) AS average_salary
FROM employees; -- 计算平均工资,将NULL值视为0
-- 使用HAVING子句进行条件过滤
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000; -- 仅显示平均工资超过50000的部门
-- 使用GROUP_CONCAT聚合字符串
SELECT department, GROUP_CONCAT(employee_name) AS employee_list
FROM employees
GROUP BY department; -- 列举每个部门的所有员工名单
-- 使用聚合函数计算中位数
SELECT department,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary) AS median_salary
FROM employees
GROUP BY department; -- 计算每个部门的工资中位数
-- 使用聚合函数计算标准差和方差
SELECT department,
STDDEV(salary) AS salary_stddev,
VARIANCE(salary) AS salary_variance
FROM employees
GROUP BY department; -- 计算每个部门的工资标准差和方差
-- 使用聚合函数进行分组拼接
SELECT department,
GROUP_CONCAT(employee_name ORDER BY salary DESC SEPARATOR ', ') AS top_employees
FROM employees
GROUP BY department; -- 列举每个部门的工资最高的员工
-- 使用聚合函数进行数据去重
SELECT DISTINCT department,
GROUP_CONCAT(DISTINCT employee_name ORDER BY employee_name) AS unique_employees
FROM employees
GROUP BY department; -- 列举每个部门的唯一员工列表
-- 使用聚合函数计算累计和
SELECT date,
amount,
SUM(amount) OVER (ORDER BY date) AS cumulative_amount
FROM sales; -- 计算每天销售额的累计和
-- 使用聚合函数进行数据透视
SELECT product,
SUM(CASE WHEN year = 2023 THEN revenue END) AS revenue_2023,
SUM(CASE WHEN year = 2024 THEN revenue END) AS revenue_2024
FROM sales
GROUP BY product; -- 按产品透视每年的销售额
-- 使用聚合函数计算排名
SELECT employee_id,
salary,
RANK() OVE服务器托管网R (ORDER BY salary DESC) AS salary_rank
FROM employees; -- 计算每个员工的工资排名
-- 使用聚合函数计算百分位数
SELECT department,
PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY salary) AS salary_75th_percentile
FROM employees
GROUP BY department; -- 计算每个部门的工资第75百分位数
数学函数
-- 常用数学函数示例
SELECT ABS(-10) AS absolute_value; -- 返回绝对值,结果为 10
SELECT ROUND(15.567, 1) AS rounded_value; -- 四舍五入到一位小数,结果为 15.6
SELECT CEIL(8.45) AS ceil_value; -- 返回不小于 8.45 的最小整数,结果为 9
SELECT FLOOR(8.45) AS floor_value; -- 返回不大于 8.45 的最大整数,结果为 8
SELECT RAND() AS random_number; -- 返回一个随机数
-- 对数学运算的一些示例
SELECT SQRT(25) AS square_root; -- 返回 25 的平方根,结果为 5
SELECT POWER(2, 3) AS power_result; -- 返回 2 的 3 次方,结果为 8
SELECT EXP(2) AS exponential_result; -- 返回 e 的 2 次方,e 为自然对数的底,结果为 7.389
SELECT LOG(10) AS logarithm_result; -- 返回以 e 为底的 10 的对数,结果为 2.303
SELECT SIN(PI()/2) AS sine_result; -- 返回正弦函数的值,参数为 /2,结果为 1
SELECT COS(PI()) AS cosine_result; -- 返回余弦函数的值,参数为 ,结果为 -1
SELECT TAN(PI()/4) AS tangent_result; -- 返回正切函数的值,参数为 /4,结果为 1
-- 角度和弧度转换的示例
SELECT DEGREES(PI()) AS radians_to_degrees; -- 将 弧度转换为度,结果为 180
SELECT RADIANS(90) AS degrees_to_radians; -- 将 90 度转换为弧度,结果为 /2
-- 数学运算和常量的示例
SELECT MOD(17, 5) AS modulo_result; -- 返回 17 除以 5 的余数,结果为 2
SELECT PI() AS pi_value; -- 返回圆周率 ,结果为 3.141592653589793
SELECT RAND() * 100 AS random_percentage; -- 生成一个 0 到 100 之间的随机百分比
SELECT SIGN(-15) AS sign_value; -- 返回 -15 的符号,结果为 -1
SELECT TRUNCATE(15.789, 1) AS truncated_value; -- 截断小数位,结果为 15.7
-- 数学函数的复杂运算
SELECT SQRT(POWER(2, 3) + POWER(4, 2)) AS complex_math; -- 复杂的数学运算,结果为 5
-- 使用数学函数进行条件计算
SELECT CASE
WHEN ABS(-20) > 10 THEN 'Greater than 10'
ELSE 'Not greater than 10'
END AS abs_comparison; -- 判断绝对值是否大于 10
-- 使用数学函数进行比较
SELECT GREATEST(5, 8, 2) AS max_value; -- 返回最大值,结果为 8
SELECT LEAST(5, 8, 2) AS min_value; -- 返回最小值,结果为 2
-- 数字格式化的示例
SELECT FORMAT(1234567.89, 2) AS formatted_number; -- 格式化数字,结果为 1,234,567.89
-- 使用数学函数进行位运算
SELECT BIT_AND(5, 3) AS bitwise_and; -- 返回 5 和 3 的按位与,结果为 1
SELECT BIT_OR(5, 3) AS bitwise_or; -- 返回 5 和 3 的按位或,结果为 7
SELECT BIT_XOR(5, 3) AS bitwise_xor; -- 返回 5 和 3 的按位异或,结果为 6
字符串函数
-- 字符串连接和截取的示例
SELECT CONCAT('Hello', ' ', 'World') AS concatenated_string; -- 连接字符串,结果为 'Hello World'
SELECT SUBSTRING('MySQL Functions', 1, 5) AS substring_result; -- 提取子串,结果为 'MySQL'
SELECT LEFT('MySQL Functions', 5) AS left_result; -- 返回左边的子串,结果为 'MySQL'
SELECT RIGHT('MySQL Functions', 8) AS right_result; -- 返回右边的子串,结果为 'Functions'
-- 字符串长度和去除空格的示例
SELECT LENGTH('MySQL') AS string_length; -- 返回字符串长度,结果为 5
SELECT CHAR_LENGTH('中文字符') AS chinese_string_length; -- 返回中文字符串长度,结果为 4
SELECT TRIM(BOTH ' ' FROM ' Trim Example ') AS trimmed_string; -- 移除两端的空格,结果为 'Trim Example'
SELECT REPLACE('Hello World', 'Hello', 'Hi') AS replaced_string; -- 替换字符串,结果为 'Hi World'
-- 字符串大小写转换的示例
SELECT UPPER('hello') AS upper_case; -- 转换为大写,结果为 'HELLO'
SELECT LOWER('WORLD') AS lower_case; -- 转换为小写,结果为 'world'
-- 字符串查找和比较的示例
SELECT POSITION('lo' IN 'Hello') AS position_result; -- 查找子串的位置,结果为 4
SELECT LOCATE('lo', 'Hello') AS locate_result; -- 查找子串的位置,结果为 4
SELECT INSTR('Hello', 'e') AS instr_result; -- 查找字符的位置,结果为 2
SELECT CONCAT('abc', 'def') = 'abcdef' AS string_comparison; -- 字符串比较,结果为 1 (TRUE)
-- 字符串分割和连接的示例
SELECT SUBSTRING_INDEX('apple,orange,banana', ',', 2) AS substring_index_result; -- 按分隔符提取子串,结果为 'apple,orange'
SELECT GROUP_CONCAT(employee_name SEPARATOR ', ') AS employee_list
FROM employees; -- 以逗号和空格连接员工名单
-- 字符串格式化的示例
SELECT FORMAT(1234567.89, 2) AS formatted_number; -- 格式化数字,结果为 '1,234,567.89'
-- 使用 CONCAT_WS 进行更复杂的字符串连接
SELECT CONCAT_WS(', ', first_name, last_name) AS full_name
FROM employees; -- 以逗号和空格连接名和姓
-- 使用 REPEAT 复制字符串
SELECT REPEAT('Na', 3) AS repeated_string; -- 复制字符串 'Na',结果为 'NaNaNa'
-- 使用 LPAD 和 RPAD 进行字符串填充
SELECT LPAD('123', 5, '0') AS left_padded_string; -- 在左侧用 '0' 填充,结果为 '00123'
SELECT RPAD('ABC', 6, '_') AS right_padded_string; -- 在右侧用 '_' 填充,结果为 'ABC___'
-- 使用 CONCAT 和 CASE 进行条件字符串拼接
SELECT employee_id,
CONCAT('Employee ',
CASE
WHEN salary > 50000 THEN 'with high salary'
ELSE 'with normal salary'
END) AS employee_status
FROM employees;
-- 使用 SUBSTRING_INDEX 进行字符串分割
SELECT SUBSTRING_INDEX('apple,orange,banana', ',', -1) AS last_item; -- 提取最后一个子串,结果为 'banana'
-- 使用 REGEXP 进行正则表达式匹配
SELECT employee_name
FROM employees
WHERE employee_name REGEXP '^A'; -- 匹配以 'A' 开头的员工名字
-- 使用 JSON 函数处理 JSON 字符串
SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name') AS extracted_name; -- 提取 JSON 字符串中的字段值,结果为 'John'
日期和时间函数
-- 当前日期和时间的示例
SELECT NOW() AS current_datetime; -- 返回当前日期和时间
SELECT CURDATE() AS current_date; -- 返回当前日期
SELECT CURTIME() AS current_time; -- 返回当前时间
-- 格式化日期的示例
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_datetime; -- 格式化日期和时间
-- 日期和时间的计算示例
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS tomorrow; -- 计算明天的日期
SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK) AS one_week_ago; -- 计算一周前的日期
-- 日服务器托管网期差异的计算示例
SELECT DATEDIFF('2024-01-10', '2024-01-04') AS date_difference; -- 计算两个日期之间的天数差异
SELECT TIMESTAMPDIFF(MONTH, '2023-01-01', '2024-01-01') AS month_difference; -- 计算两个日期之间的月数差异
-- UNIX 时间戳的示例
SELECT UNIX_TIMESTAMP(NOW()) AS current_unix_timestamp; -- 返回当前的 UNIX 时间戳
SELECT FROM_UNIXTIME(1641347100) AS from_unix_timestamp; -- 将 UNIX 时间戳转换为日期和时间
-- 时区相关的示例
SELECT CONVERT_TZ(NOW(), '+00:00', '+05:00') AS converted_datetime; -- 转换时区
-- 使用 EXTRACT 获取日期和时间部分
SELECT EXTRACT(YEAR FROM NOW()) AS current_year; -- 提取当前年份
SELECT EXTRACT(MONTH FROM NOW()) AS current_month; -- 提取当前月份
-- 日期和时间的比较示例
SELECT '2024-01-10' > '2024-01-04' AS date_comparison; -- 比较两个日期
-- 使用 INTERVAL 和 CASE 进行条件日期计算
SELECT order_date,
CASE
WHEN DATEDIFF(NOW(), order_date)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 如何在Spring Boot中集成RabbitMQ
如何在Spring Boot中集成RabbitMQ 在现代微服务架构中,消息队列(如RabbitMQ)扮演了关键的角色,它不仅能够提供高效的消息传递机制,还能解耦服务间的通信。本文将介绍如何在Spring Boot项目中集成RabbitMQ,实现生产者和消费者…