【发布时间】:2014-01-09 08:22:44
【问题描述】:
请注意以下获取 12 行随机行的 SQL 查询。
SELECT TOP 12 ExportSystem.sysID, ExportSystem.sysNo, ExportSystem.sysName, Document.docArchiveNo FROM ExportSystem
INNER JOIN Customer ON ExportSystem.sysNo = Customer.expSysNr
INNER JOIN Department ON Customer.cusID = Department.cusID
INNER JOIN Level ON Level.levParentID = Department.levRootID
INNER JOIN Document ON Document.levID = Level.levID
GROUP BY ExportSystem.sysID, ExportSystem.sysNo, ExportSystem.sysName, Document.docArchiveNo
ORDER BY newid()
结果
SystemName ArchiveNo
RR 31676981
AA 28741154
AA 30435868
AA 29665408
AA 28116900
BB 31114199
RR 29080695
AA 29903701
VV 31890130
BB 29898481
BB 30892927
AA 30545346
我尝试了很多方法,但还没有弄清楚如何为每个组获得相同数量的行。目前有2个RR,6个AA,3个BB,1个VV。如何在每个 SystemName 组中获取 4 行。
【问题讨论】:
-
一个想法是从每个组中分别选择4个随机行,然后进行联合。
标签: sql sql-server