【发布时间】:2015-10-28 11:03:16
【问题描述】:
我确信这是一个简单的问题,我发誓我搜索了论坛但没有任何帮助。我有一个我想要不同的 SYS.Name0 的 SQL 查询:
SELECT DISTINCT SYS.Name0 As 'PC Name', PR.Name0 AS 'Printer Name'
FROM v_R_System SYS
INNER JOIN v_GS_PRINTER_DEVICE PR
ON SYS.ResourceID = PR.ResourceID
WHERE SYS.AD_Site_Name0 = 'Texas'
即使使用 DISTINCT,我也会得到重复的 SYS.Name0(PC 名称)。
搜索论坛,然后我添加了GROUP BY SYS.Name0
然后我得到错误:
列“v_GS_PRINTER_DEVICE.Name0”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
任何帮助将不胜感激
【问题讨论】:
-
您应该通过显示结果来指定重复的含义。尝试选择其他列并检查。
-
您使用的是哪个 DBMS?
-
通过返回唯一记录区分和分组。不是唯一的列。如果您想要 PC 名称列表,那么您也不能返回打印机名称;或者您必须将所有打印机名称连接在一起,例如 group_concat 在 mySQL 中会这样做;或返回最小或最大打印机...
标签: sql duplicates distinct