DENSE_RANK() OVER (PARTITION BY
Sybase Alternative for DENSE_RANK() OVER (PARTITION BY
我有下面的 SQL 查询,需要将其转换成 Sybase。
SELECT prd_name, DENSE_RANK() OVER (PARTITION BY prd_cat ORDER BY createddt) FROM product
Table 脚本:
CREATE table product(prd_name varchar(10),
prd_cat varchar(10),
createddt datetime)
INSERT INTO product values('Product 1', 'Toy', CONVERT(DATE,'2017-05-30'))
INSERT INTO product values('Product 2', 'Toy', CONVERT(DATE,'2017-05-31'))
INSERT INTO product values('Product 3', 'Toy', CONVERT(DATE,'2017-05-31'))
INSERT INTO product values('Product 4', 'Toy1', CONVERT(DATE,'2017-05-29'))
版本:Adaptive Server Enterprise/15.7
某些版本的 Sybase 支持 window 函数。我假设你没有这样的版本。
您可以将其替换为相关子查询:
SELECT p.prd_name,
(SELECT COUNT(DISTINCT createddt)
FROM product p2
WHERE p2.prd_cat = p.prd_cat AND p2.createddt < p.createddt
)
FROM product p;
我有下面的 SQL 查询,需要将其转换成 Sybase。
SELECT prd_name, DENSE_RANK() OVER (PARTITION BY prd_cat ORDER BY createddt) FROM product
Table 脚本:
CREATE table product(prd_name varchar(10),
prd_cat varchar(10),
createddt datetime)
INSERT INTO product values('Product 1', 'Toy', CONVERT(DATE,'2017-05-30'))
INSERT INTO product values('Product 2', 'Toy', CONVERT(DATE,'2017-05-31'))
INSERT INTO product values('Product 3', 'Toy', CONVERT(DATE,'2017-05-31'))
INSERT INTO product values('Product 4', 'Toy1', CONVERT(DATE,'2017-05-29'))
版本:Adaptive Server Enterprise/15.7
某些版本的 Sybase 支持 window 函数。我假设你没有这样的版本。
您可以将其替换为相关子查询:
SELECT p.prd_name,
(SELECT COUNT(DISTINCT createddt)
FROM product p2
WHERE p2.prd_cat = p.prd_cat AND p2.createddt < p.createddt
)
FROM product p;