我试图在相同数量的套牌中拆分一些记录。它与sql Ntile(20)函数一起工作正常。然而问题是它也拆分了邮政编码。拆分应该在邮政编码中进行。
Select (NTILE(20) OVER(ORDER BY PostalCode ASC)) AS 'DeckNumber'
from xxx
order by Postalcode
任何想法如何解决这个问题?
答案 0 :(得分:1)
如果您正在使用SQL Server - 您应该能够这样做:
SELECT
NTILE(20) OVER(PARTITION BY PostalCode ORDER BY PostalCode ASC) AS 'DeckNumber'
FROM dbo.xxx
ORDER BY Postalcode
这会按Postalcode
将您的数据“划分”为多个组,并且在每个组中,将应用NTILE(20)
功能。
也许你想在ORDER BY
函数中使用不同的NTILE...OVER()
子句 - 因为你已经按Postalcode
进行了分区,所以按顺序排序并不是真的很多感觉...