sql - HAVING 子句中带有 GROUP BY 子句的 AVG
问题描述
编写查询以显示制造商和公司制造的型号数量,当且仅当制造商的平均保修期超过 3 年。为计数指定一个别名为“TOTAL_COUNT”。(提示:使用 Mobile_Master 建表检索记录) 在 oracle sql 中执行
select MANUFACTURER, count(IME_NO) AS
TOTAL_COUNT
from MOBILE_MASTER
where WARRANTY_IN_YEARS>3
group BY MANUFACTURER;
这是我写的查询,但是
节目输出
MANUFACTURER TOTAL_COUNT
------------ -----------
Samsung 1
Nokia 1
预期产出
MANUFACTURER TOTAL_COUNT
------------ -----------
Samsung 3
IME_NO MODEL_NAME MANUFACTURER DATE_OF_MANUF WARRANTY_IN_YEARS PRICE DISTRIBUTOR_ID SPEC_NO
---------- ---------- ----------
SA100010 SamsungS2 Samsung 12-APR-08 4
25000 SA110 SP1
SA100020 SamsungS3 Samsung 02-MAR-10 3
13000 SA110 SP2
SA100030 SamsungACE Samsung 25-DEC-09 3
15000 SA111 SP3
NO100010 NokiaAsha Nokia 18-SEP-11 2
6500 NO111 SP4
NO100020 NokiaLumiaB2 Nokia 15-OCT-07 2
22000 NO110 SP3
NO100030 NokiaLumiaC2 Nokia 25-NOV-09 5
14000 NO111 SP4
解决方案
where WARRANTY_IN_YEARS>3
你的问题不是有,而是
...仅当制造商的平均保修期超过 3 年时
关键词是平均。
要基于聚合函数进行过滤,您需要在HAVING
子句中使用过滤器,而不是WHERE
像这样的子句:
SELECT MANUFACTURER, COUNT (IME_NO) AS TOTAL_COUNT
FROM mobile_master
GROUP BY manufacturer
HAVING AVG (WARRANTY_IN_YEARS) > 3;
推荐阅读
- r - 将变量的字符输出动态分配给颜色
- python-3.x - 如何在 python 3.x 中的输入后面打印文本
- javascript - 在 Chrome 扩展中的 if 语句之后没有运行函数
- reactjs - 如何在 Ant Design 表单中实现响应式布局?
- azure-devops - 如何通过 UniversalPackages 将包上传到 Azure devops pipline 中的外部私有 noarch 存储库
- php - 为什么我的产出价值翻了一番?如何在不加倍的情况下存储每个文件的确切值?
- python - 无法仅在一台机器上打开 Python 中的共享库
- r - R Shiny中表格下方的中心表格
- python - 如何在 docker 容器中使用 Python 的 webbrowser.get
- javascript - 数组中单词列表中具有特定第一个和最后一个字母的单词(node.js)