【问题标题】:Looking to add in a Count query with Group by INTO an existing working query希望在现有的工作查询中添加带有 Group by INTO 的 Count 查询
【发布时间】:2019-04-04 22:22:35
【问题描述】:

目标: 我希望获得重新分配 WorkItem 的次数 据我了解,正确的查询如下:

SELECT      
    WorkItemDimvw.Id, 
    COUNT(WorkItemAssignedToUserFactvw.WorkItemAssignedToUser_UserDimKey) AS Assignments    
FROM  WorkItemDimvw INNER JOIN  WorkItemAssignedToUserFactvw 
ON WorkItemDimvw.WorkItemDimKey = WorkItemAssignedToUserFactvw.WorkItemDimKey 
GROUP BY WorkItemDimvw.Id

EXISTING 查询如下,我想知道/忘记是否应该这样做:

  1. 只需添加COUNT(WorkItemAssignedToUserFactvw.WorkItemAssignedToUser_UserDimKey) AS Assignments,因为连接已经存在,但它是按 WorkItemDimvw.Id 分组的
  2. 应该改为下面 Select 中的子查询吗?

查询:

SELECT 
    SRD.ID,
    SRD.Title,
    SRD.Description,
    SRD.EntityDimKey,
    WI.WorkItemDimKey,
    IATUFact.DateKey
FROM 
    SLAConfigurationDimvw 
    INNER JOIN SLAInstanceInformationFactvw 
        ON SLAConfigurationDimvw.SLAConfigurationDimKey = SLAInstanceInformationFactvw.SLAConfigurationDimKey 
    RIGHT OUTER JOIN ServiceRequestDimvw AS SRD 
    INNER JOIN WorkItemDimvw AS WI 
        ON SRD.EntityDimKey = WI.EntityDimKey
    LEFT OUTER JOIN WorkItemAssignedToUserFactvw AS IATUFact 
        ON WI.WorkItemDimKey = IATUFact.WorkItemDimKey 
        AND IATUFact.DeletedDate IS NULL 

【问题讨论】:

  • 请添加输入数据和预期输出。
  • 什么意思?我只是想将准确的 COUNT 添加到查询中,我想知道是否可以添加 Count 语句,或者是否需要将其添加为子查询等。
  • @ChadJacobs:您需要向我们展示示例数据和预期输出,以便我们确保清楚地了解您的要求。请看this link

标签: sql sql-server tsql join


【解决方案1】:

诀窍是在加入子查询之前聚合子查询的数据。

SELECT 
    SRD.ID,
    SRD.Title,
    SRD.Description,
    SRD.EntityDimKey,
    WI.WorkItemDimKey,
    IATUFact.DateKey,
    IATUFact.Assignments
FROM 
    SLAConfigurationDimvw 
INNER JOIN
    SLAInstanceInformationFactvw 
        ON SLAConfigurationDimvw.SLAConfigurationDimKey = SLAInstanceInformationFactvw.SLAConfigurationDimKey 
RIGHT OUTER JOIN
    ServiceRequestDimvw AS SRD
        ON <you're missing something here>
INNER JOIN
    WorkItemDimvw AS WI 
        ON SRD.EntityDimKey = WI.EntityDimKey
LEFT OUTER JOIN
(
    SELECT
        WorkItemDimKey,
        DateKey,
        COUNT(WorkItemAssignedToUser_UserDimKey) AS Assignments
    FROM
        WorkItemAssignedToUserFactvw
    WHERE
        DeletedDate IS NULL
    GROUP BY
        WorkItemDimKey,
        DateKey
)
    IATUFact
        ON  WI.WorkItemDimKey = IATUFact.WorkItemDimKey

【讨论】:

  • Msg 102,级别 15,状态 1,第 34 行 'IATUFact' 附近的语法不正确。
  • 上述错误是当我单独运行时,但如果我真正实现它,我会得到Invalid column name 'WorkItemAssignedToUser_UserDimKey'. 其中我三重检查,它是正确的列
猜你喜欢
  • 2014-04-20
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多