sql - SQL Server 中的查询表达式中的语法错误(缺少运算符)
问题描述
我有一些 SQL 代码,当我运行它时,我得到一个错误:
SELECT AVG (DISTINCT E.salary) AS avrage
FROM aircraft AS A, certified AS C, employees AS E
WHERE A.cruisingrange > 1000
AND A.aid = C.aid
AND C.eid = E.eid
错误:
我该如何解决这个错误?
解决方案
MS Access 不直接支持DISTINCT
聚合函数内部的语法。这里的一种解决方法是对找到不同薪水的子查询求平均值:
SELECT AVG(salary) AS avrage
FROM
(
SELECT DISTINCT E.salary
FROM (aircraft AS A
INNER JOIN certified AS C ON A.aid = C.aid)
INNER JOIN employees AS E ON C.eid = E.eid
WHERE A.cruisingrange > 1000
) t;
请注意,我还将您的旧式隐式连接语法转换为现代显式连接语法。这是当今编写 SQL 的首选方式。
推荐阅读
- c++ - 用于调用另一个方法的方法的结果产生不一致的结果
- git - 是否可以从存储中应用单行?
- angular - 如何将角度模板中的枚举值作为输入传递?
- python - kivymd:如何在下拉菜单中添加图标?
- java - java - 方法没有通过测试
- python - 将图像搜索与 AHK 或 pyAutoGUI 进行比较?
- reactjs - React js状态值延迟更新
- javascript - 在下一个 js 中没有在 google sheet 中写入数据
- python - 通过匹配 Python 中的某些单词为新创建的列分配值
- python - 带有样式的 Python Plotly 雷达图