无订单列时,如何统计2021年1月各国家的订单总数?
统计2021年1月各国家订单总数的SQL方案
虽然orders表没有专门的“订单标识列”,但表中的每一行记录本身就对应一个独立订单,直接通过统计符合日期条件的行数即可得到结果。
核心SQL查询语句
SELECT country, COUNT(*) AS total_orders FROM orders WHERE date >= '2021-01-01' AND date < '2021-02-01' GROUP BY country;
语句说明
- 日期筛选:用
date >= '2021-01-01' AND date < '2021-02-01'精准匹配2021年1月的所有订单,这种写法比EXTRACT函数更高效,因为可以利用date字段的索引(如果存在)。 - 分组统计:通过
GROUP BY country将订单按国家分组,再用COUNT(*)统计每组的订单行数,也就是该国家的订单总数。
预期结果
根据提供的测试数据,执行后会得到:
| country | total_orders |
|---|---|
| Pakistan | 7 |
| Holland | 1 |
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

