查询以获取列的最高 ROW_NUM() 值作为另一列的仅 RANK() 值
Query to get highest ROW_NUM() value of a column AS only RANK() value of another column
上的问题 #105
这是数据库架构:
问题:
统计学家 Alice、Betty、Carol 和 Diana 正在对产品 table 中的行进行编号。
最初他们都按制造商姓名的升序对 table 行进行排序。
爱丽丝正在为每一行分配一个新数字,这样她就按模型升序对同一制造商的行进行排序。
其他三位统计学家将相同的数字分配给同一制造商的所有行。
Betty从1开始分配数字,接下来每一个maker加1。
Carol给一个maker这样的数字,Alice给这个maker的第一个模型也是这个数字
戴安娜给一个制造商这样的数字,爱丽丝会为这个制造商的最后一个模型给出这个数字。
输出:Alice、Betty、Carol 和 Diana 分别分配给 table 行的制造商、型号和编号。
我已经为 Alice(A)、Betty(B)、Carol(C) 想出了这个查询
SELECT maker, model,
ROW_NUMBER() OVER (ORDER BY maker,model ASC) A,
DENSE_RANK() OVER(ORDER BY maker) B,
RANK() OVER (ORDER BY maker) C
FROM product
ORDER BY model ASC
但我无法找到 Diana(D) Column 的解决方案。
根据站点,这是正确查询应给出的结果:
感谢您的帮助、时间和理解。
SELECT
(SELECT COUNT(*)
FROM product T2
WHERE T2.[maker] <= T1.[maker]) as D
FROM product T1
这是数据库架构:
问题: 统计学家 Alice、Betty、Carol 和 Diana 正在对产品 table 中的行进行编号。 最初他们都按制造商姓名的升序对 table 行进行排序。 爱丽丝正在为每一行分配一个新数字,这样她就按模型升序对同一制造商的行进行排序。 其他三位统计学家将相同的数字分配给同一制造商的所有行。
Betty从1开始分配数字,接下来每一个maker加1。
Carol给一个maker这样的数字,Alice给这个maker的第一个模型也是这个数字
戴安娜给一个制造商这样的数字,爱丽丝会为这个制造商的最后一个模型给出这个数字。
输出:Alice、Betty、Carol 和 Diana 分别分配给 table 行的制造商、型号和编号。
我已经为 Alice(A)、Betty(B)、Carol(C) 想出了这个查询
SELECT maker, model,
ROW_NUMBER() OVER (ORDER BY maker,model ASC) A,
DENSE_RANK() OVER(ORDER BY maker) B,
RANK() OVER (ORDER BY maker) C
FROM product
ORDER BY model ASC
但我无法找到 Diana(D) Column 的解决方案。
根据站点,这是正确查询应给出的结果:
感谢您的帮助、时间和理解。
SELECT
(SELECT COUNT(*)
FROM product T2
WHERE T2.[maker] <= T1.[maker]) as D
FROM product T1