如何按以下方式获取除分组依据之外的其他列值,
SELECT DIS.iDataItemID,
DIS.iDataItemCurrentStatusID,
COUNT(*) ,
DI.iDataTypeID,
DI.iEmployeeID,
DI.iEmployerID
FROM DataItem DI INNER JOIN DataItemStatus DIS
ON DI.iDataItemID = DIS.iDataItemID Where iDataItemCurrentStatusID = 1
GROUP BY DIS.iDataItemID, DIS.iDataItemCurrentStatusID
如果我从选择中删除了三列(即iDataTypeID,iEmployeeID,iEmployerID),查询工作正常
请让我知道如何使用这些值获取结果
答案 0 :(得分:0)
使用docker exec -it container_name /bin/bash
时,要使您的SQL有效,您需要使用聚合(group by
,count
)或在max
列表中具有该列(如果不执行严格模式,则MySQL在这方面是一个例外。)
简而言之,只需在当前group by
行的末尾添加您想看到的3个额外的列:
group by
答案 1 :(得分:0)
大多数DBMS
具有 window 功能支持:
SELECT DIS.iDataItemID, DIS.iDataItemCurrentStatusID,
COUNT(*) OVER (PARTITION BY DIS.iDataItemID, DIS.iDataItemCurrentStatusID),
DI.iDataTypeID,
DI.iEmployeeID,
DI.iEmployerID
FROM DataItem DI INNER JOIN
DataItemStatus DIS
ON DI.iDataItemID = DIS.iDataItemID
WHERE iDataItemCurrentStatusID = 1;
我认为您的DB
也是其中之一,具有窗口功能支持。