我有一个适用于 MySQL 但不适用于 Oracle 的查询,我正在尝试转换。这是我的桌子:
unique_row_id http_session_id page_name page_hit_timestamp
----------------------------------------------------------------
0 123456789 index.html 2010-01-20 15:00:00
1 123456789 info.html 2010-01-20 15:00:05
2 123456789 faq.html 2010-01-20 15:00:15
3 987654321 index.html 2010-01-20 16:00:00
4 987654321 faq.html 2010-01-20 16:00:05
5 987654321 info.html 2010-01-20 16:00:15
6 111111111 index.html 2010-01-20 16:01:00
7 111111111 faq.html 2010-01-20 16:01:05
8 111111111 info.html 2010-01-20 16:01:15
SQL是
select http_session_id, unique_row_id, page_name, page_hit_timestamp
from page_hits
group by http_session_id;
在 MySQL 上,这将返回 3 行(每个唯一的 http_session_id 一个)。
在 Oracle 上,我收到“ORA-00979:不是 GROUP BY 表达式”错误。我也尝试过使用 distinct ,但我无法让它工作。
为了清楚起见 - 我想要一个每个唯一 http_session_id 包含一行的 ResultSet。最好 unique_row_id 是最大值(例如 http_session_id==123456789 为 2),但这并不重要。
我即将将其分解为多个单独的 sql 语句(一个“选择不同的 http_session_id”,另一个迭代所有这些并选择 max(unique_row_id)。任何指针都将不胜感激 - 我很想避免这!
Rgds,凯文。