首页 文章

选择不同的行并显示每个值的计数

提问于
浏览
2

我正在尝试选择 [AssetManager].[AssetType] 的不同选择,其中包含从表 [AssetManager].[Asset] 引用资产类型的Id的次数 . 请看下面的示例:

+-----------+-------------+
| Type Name | Asset Count |
+-----------+-------------+
| Phone     |           5 |
| Desktop   |          12 |
| Laptop    |          22 |
+-----------+-------------+

但是,我正在尝试的查询根本不起作用,我得到的最远的是选择具有类型名称的内部联接的资产 Headers (我在SQL中不是很好......) . 请参阅下面的我当前的查询:

SELECT
[Asset].[Title] AssetTitle,
[AssetType].[Title] TypeTitle
FROM
[AssetManager].[Asset]
INNER JOIN
[AssetManager].[AssetType]
ON
[Asset].[AssetType_Id] = [AssetType].[Id]

2 回答

  • 2

    正如评论所说,您需要做的就是正确添加 GROUP BY

    SELECT
        [AssetType].[Title] TypeTitle
        , COUNT(*) [Asset Count]
    FROM [AssetManager].[Asset]
         INNER JOIN [AssetManager].[AssetType]
            ON [Asset].[AssetType_Id] = [AssetType].[Id]
    GROUP BY [AssetType].[Title]
    
  • 1

    使用 OUTER APPLY[AssetManager].[Asset] 表中获取引用计数

    SELECT
       DISTINCT [AssetType].[Title] TypeTitle,
       M.TypeCount
    FROM
    [AssetManager].[AssetType]
    OUTER APPLY(
      SELECT COUNT([Asset].[AssetType_Id]) AS TypeCount
      FROM [AssetManager].[Asset]
      WHERE [Asset].[AssetType_Id] = [AssetType].[Id]
    )M
    

相关问题