【发布时间】:2021-06-05 09:22:42
【问题描述】:
问题:从下表包含订购日期和项目的列表中,编写一个查询以返回每个日期订购频率最高的项目。在平局的情况下返回多个项目。
Oracle SQL 中的问题输入
create table items(dates varchar2(200), item VARCHAR2(200));
insert into items values ('01-01-20', 'apple');
insert into items values ('01-01-20', 'apple');
insert into items values ('01-01-20', 'pear');
insert into items values ('01-01-20', 'pear');
insert into items values ('01-02-20', 'pear');
insert into items values ('01-02-20', 'pear');
insert into items values ('01-02-20', 'pear');
insert into items values ('01-02-20', 'orange');
这是我要执行的代码。但是,我得到一个错误
ORA-00923:在预期的地方找不到 FROM 关键字
有人可以帮忙吗?
select dates, item
from
(
SELECT *, rank() OVER (PARTITION by dates ORDER BY item_count DESC) AS date_rank
FROM
(
SELECT dates, item, count(*) AS item_count
FROM items
GROUP BY 1, 2
ORDER BY 1))
where date_rank=1;
【问题讨论】:
-
我在您的问题中没有看到任何 CTE。
标签: sql oracle common-table-expression window-functions