【发布时间】:2014-01-03 22:37:33
【问题描述】:
以下是 oracle SQL,我想将其更改为 Teradata 格式。
SELECT branch_code,
branch_no,
c_no,
cd_type
FROM (
SELECT branch_code,
branch_no,
c_no,
cd_type,
* * RANK() OVER (
PARTITION BY c_no ORDER BY cd_type
) RANK * *
FROM (
SELECT branch_code,
branch_no,
c_no,
MIN(cd_type) cd_type
FROM EMPLOYEE
WHERE S_CODE = 'C'
AND (branch_no) NOT IN (
SELECT branch_code
FROM DEPARTMENT
WHERE branch_code = 'ABC'
)
)
)
WHERE RANK = 1
我使用 QUALIFY 来获得如下排名。
SELECT branch_code,
branch_no,
c_no,
cd_type
FROM (
SELECT branch_code,
branch_no,
c_no,
cd_type,
* * QUALIFY ROW_NUMBER() OVER (
PARTITION BY c_no ORDER BY cd_type
) * * RANK
FROM (
SELECT branch_code,
branch_no,
c_no,
MIN(cd_type) cd_type
FROM EMPLOYEE
WHERE S_CODE = 'C'
AND (branch_no) NOT IN (
SELECT branch_code
FROM DEPARTMENT
WHERE branch_code = 'ABC'
)
)
)
WHERE RANK = 1
但出现“预期介于 , 和 QUALIFY 之间的错误。
我们可以在 select 语句中加入 QUALIFY 吗?
【问题讨论】: