看到类似的RANK()问题,但我不确定如何设置它的OVER部分。
这是我当前的查询,按最高总降额对项目进行排序:
SELECT c.CONTID, COUNT(*) AS 'Total'
FROM CUSTOMER c
LEFT JOIN CLOGS1516 h
ON c.SERIALNO = h.SERIALNO
LEFT JOIN CUSTUFLD u
ON c.SERIALNO = u.SERIALNO
WHERE EVTYPE = 1
AND DATEADD(minute, OFFSET, h.EVDATE) BETWEEN '2016-01-25' AND '2016-02-21'
AND u.VALUE LIKE 'Retail'
GROUP BY c.CONTID
ORDER BY [Total] DESC
上面的示例输出是:
CONTID Total
109 105
084 88
589 86
610 68
415 58
返回的行总数约为300。我现在正试图排名"排名"每条记录根据其总数与其他项目进行比较。不确定我是否在与上述相同的查询中执行此操作,或者它是否是排序的子查询。我第一次尝试在SQL本身进行排名而不是PHP端。
答案 0 :(得分:0)
谢谢@ZLK - RANK()OVER(ORDER BY COUNT(*))就是我想要的。在我的SELECT行中添加它并且排名适当。