如何创建SQL视图统计员工ID为4的9月交易总笔数
问题分析与修正方案
原代码错误点
- 聚合参数错误:
COUNT(transactions)中的transactions是表名,表中没有该字段,统计交易数量可直接使用COUNT(*)或者统计交易主键t_id - 缺少日期筛选逻辑:仅过滤了员工ID为4,没有限制交易时间为9月,会统计该员工所有月份的交易数据
- 类型使用不规范:
e_id为INT类型,无需用字符串引号包裹值
正确视图创建语句
CREATE VIEW DeniseTransactions AS SELECT COUNT(*) AS september_trans_count FROM Transactions WHERE e_id = 4 AND MONTH(`date`) = 9;
注:如果需要限定统计的年份,可额外加条件
AND YEAR(date) = 2021即可;给统计结果加别名是为了查询时字段语义更清晰,也可以不加别名,不影响统计结果正确性。
效果验证
执行 SELECT * FROM DeniseTransactions; 后,返回的统计结果为2,与测试数据中员工ID为4的9月交易记录数量完全匹配。
内容的提问来源于stack exchange,提问作者james B
相关产品推荐
相关产品推荐

