PostgreSQL 提供了许多实用函数,这些函数可以帮助你在查询和处理数据时更加高效。以下是一些常用的 PostgreSQL 实用函数:

1. 聚合函数:
   - SUM():计算指定列的总和。
   - AVG():计算指定列的平均值。
   - MIN() 和 MAX():分别找出指定列的最小值和最大值。
   - COUNT():计算行数。
   SELECT SUM(column1), AVG(column2), MIN(column3), MAX(column4), COUNT(*)
   FROM my_table;

2. 字符串函数:
   - CONCAT() 或 ||:连接字符串。
   - UPPER() 和 LOWER():将字符串转换为大写或小写。
   - LENGTH() 或 CHAR_LENGTH():计算字符串的长度。
   SELECT CONCAT(first_name, ' ', last_name) AS full_name,
          UPPER(city) AS uppercase_city,
          LENGTH(email) AS email_length
   FROM customer;

3. 日期和时间函数:
   - NOW():返回当前日期和时间。
   - DATE_PART():提取日期或时间的部分。
   - AGE():计算两个日期之间的差值。
   SELECT NOW() AS current_datetime,
          DATE_PART('year', hire_date) AS hire_year,
          AGE(NOW(), birth_date) AS age
   FROM employee;

4. 条件函数:
   - COALESCE():返回参数列表中的第一个非空值。
   - CASE:执行条件判断。
   SELECT first_name,
          COALESCE(middle_name, 'N/A') AS middle_name,
          CASE WHEN salary > 50000 THEN 'High' ELSE 'Low' END AS salary_level
   FROM employee;

5. 数组函数:
   - ARRAY_LENGTH():返回数组的长度。
   - UNNEST():将数组展开为表格。
   SELECT ARRAY_LENGTH(tags, 1) AS num_tags,
          UNNEST(tags) AS individual_tag
   FROM document;

6. 窗口函数:
   - ROW_NUMBER()、RANK()、DENSE_RANK():对查询结果进行排名。
   - LEAD() 和 LAG():访问结果集中下一行或上一行的值。
   SELECT employee_id,
          salary,
          ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS ranking
   FROM employee;

这只是一小部分 PostgreSQL 实用函数的示例。PostgreSQL 提供了丰富的内建函数,以及用户可以自定义的函数。在编写查询时,查阅 PostgreSQL 文档以了解可用的函数是很有帮助的。


转载请注明出处:http://www.zyzy.cn/article/detail/8544/PostgreSQL