【发布时间】:2012-10-03 09:46:13
【问题描述】:
下面是一个非常基本的场景。
即使经过大量示例,我也很难理解 GROUP BY 的工作原理。
在以下场景中,我需要获取日期的最小值,并且需要将我的查询 1 转换为查询 2。
查询1:
SELECT b.aper07_req_created_s,
b.aper06_req_status_k,
a.aper06_req_status_x
FROM iaper07_employee_offbrd_req b,
iaper06_req_status a
WHERE a.aper06_req_status_k = b.aper06_req_status_k
AND b.aper07_req_k = 3387
AND b.aper06_req_status_k = 4
ORDER BY b.aper07_req_created_s
查询 2:
SELECT Min(b.aper07_req_created_s),
b.aper06_req_status_k,
a.aper06_req_status_x
FROM iaper07_employee_offbrd_req b,
iaper06_req_status a
WHERE a.aper06_req_status_k = b.aper06_req_status_k
AND b.aper07_req_k = 3387
AND b.aper06_req_status_k = 4
GROUP BY b.aper06_req_status_k,
a.aper06_req_status_x
ORDER BY b.aper07_req_created_s
查询 2 未能说明它不是按表达式分组。
谁能帮助我理解如何通过一些解释正确地进行第二次查询?
【问题讨论】:
-
你能把你的SQL标记为代码,然后分成多行吗?演示很重要,它将使其更具可读性(因此对于任何可能想要帮助您的人来说更容易理解)