sql - Oracle SQL - 平均函数的最大值
问题描述
我有一张桌子 dane2_:
day |visitors_number
-------------|---------------
02/01/2020 |250
...
说明: 1. 一周中个别日子的平均访客数(将一周中的某一天记录为文本:周一、周二等)。我做了:
SELECT
day_written, ROUND( AVG (visitors_number),0) AS avg_visitors_number FROM
(SELECT day, TO_CHAR(day,'DAY','NLS_DATE_LANGUAGE = POLISH') AS day_written,
visitors_number
FROM dane2_)
GROUP BY day_written
ORDER BY avg_visitors_number DESC;
- 一周中哪一天的平均访客人数最多?我想使用前面的查询,但不写回去。代码应该尽可能简单,使用 MAX 函数。先感谢您。
解决方案
我认为这是一个你可以ROWNUM
在外部查询中使用的地方。看看这个例子:
SELECT sub.day_of_week,
ROUND(sub.avg_visitors_number, 0) AS AVG_VISITORS_NUMBER
FROM (SELECT TO_CHAR(d.day, 'DAY') AS DAY_OF_WEEK,
AVG(d.visitors_number) AS AVG_VISITORS_NUMBER
FROM dane2 d
GROUP BY TO_CHAR(d.day, 'DAY')
ORDER BY AVG_VISITORS_NUMBER DESC) sub
WHERE ROWNUM = 1;
这是带有此示例的 DBFiddle(链接)
该查询获取您的排序结果并仅选择第一行。需要注意的是,我建议在排序后进行一轮,以使您获得最准确的结果。
推荐阅读
- php - 跨脚本执行重用 PHP curl 句柄
- reactjs - React Admin - 在未找到 API 响应时处理数据
- c - 3次握手文件传输
- r - 在 R Plotly 中修改单个刻度标签
- sublimetext3 - 在 sublime text 3 中的不同项目窗口之间切换
- python - 计算字典中项目的频率
- ios - 十六进制(长字符串)l 转二进制
- firebase - Firebase 数据库规则中允许写入和允许创建更新之间的区别
- postgresql - Postgres CREATE/DROP DATABASE 有时会导致语法错误
- android - Android Studio 进程扫描文件以永久循环索引