sql - Oracle:按十年分组数据
问题描述
我有一个包含以下详细信息的客户表:
DOB 是 Oracle 中的日期数据类型
Customer ID Name DOB
1 Babu 20-07-1987
2 MohanLal 20-04-1962
3 Mammootty 20-04-1961
期望的结果:
Decade start Decade end No_of_customers
1960-01-01 1969-12-31 2
1980-01-01 1989-12-31 1
解决方案
您可以尝试以下 SQL 查询:
SELECT
substr(TO_CHAR(DOB,'YYYY-MM-DD'),1,3)||'0-01-01' as DECADE_START,
substr(TO_CHAR(DOB,'YYYY-MM-DD'),1,3)||'9-12-31' as DECADE_END,
count(1) AS NO_OF_CUSTOMERS
FROM
customer_table
group by
substr(TO_CHAR(DOB,'YYYY-MM-DD'),1,3)
推荐阅读
- git - why git merge is not showing any difference
- java - Liquibase 差异:运行 Liquibase 时出现意外错误:无法加载类 [com.company.product.model.persist.Address]
- r - 合并发生在下一行的时间点
- python - 在pyparsing中使用特定长度的字段标记字符串
- c# - 使用 WeakEventManager 时发生 WeakReference 泄漏
- javascript - 运行动画后如何应用无显示?
- javascript - 下载文件时显示进度条?
- android - GooglePlay 撤销了测试订阅
- python - 在numpy数组中第一次对高于阈值的值分组后如何设置等于nan?
- mysql - 复制远程数据库时遇到问题