如何在不更改分组的情况下添加表格元素?此选择按预期工作:
SELECT cid, cnumber, cenrtyp, MAX(nqpoints);
from demographicenroll3.dbf;
WHERE cenrtyp = "RT" ;
GROUP BY cid, cnumber, cenrtyp ;
这给了我一个列表,其中只包含组cid,子组cnumber中具有max nqpoints值的记录之一,这就是我想要的。
但是我需要在记录集中包含cnumber的唯一记录号,这是ecid - 所以我添加了ecid:
SELECT cid, cnumber, cenrtyp, MAX(nqpoints), ecid;
from demographicenroll3.dbf;
WHERE cenrtyp = "RT" ;
GROUP BY cid, cnumber, cenrtyp, ecid ;
但这不起作用,因为它改变了使Max(nqpoints)不正确的分组。得到我想要的任何技巧?
答案 0 :(得分:1)
您无法在单个查询中执行此操作,但您可以将现有查询转换为另一个查询中的派生表:
SELECT dmax.cid, dmax.cnumber, dmax.cenrtyp, maxpts, ecid ;
FROM demographicenroll3 d3
JOIN (
SELECT cid, cnumber, cenrtyp, MAX(nqpoints) AS maxpts;
from demographicenroll3;
WHERE cenrtyp = "RT" ;
GROUP BY cid, cnumber, cenrtyp) dmax ;
ON d3.cid = dmax.cid ;
AND d3.cnumber = dmax.cnumber ;
AND d3.cenrtyp = dmax.cenrtype ;
AND d3.nqpoints = dmax.maxpts