Sql 基于另一列的组特定列

Sql 基于另一列的组特定列,sql,sql-server,Sql,Sql Server,我有如下数据: extension directory size sql c:\foo 2 sql c:\foo 3 txt c:\foo 5 txt c:\bar .5 txt c:\bar

我有如下数据:

extension          directory       size
sql               c:\foo                  2
sql               c:\foo                  3
txt               c:\foo                  5
txt               c:\bar                 .5
txt                c:\bar                 2
xsd               c:\newFoo               4
我需要的是:

extension          directory       size               qty files
sql               c:\foo                  5            2
txt               c:\foo                  5            1
txt               c:\bar                 2.5            2  
xsd              c:\newFoo               4              1
我试过类似的东西

SELECT extension, directory, sum(size)
From dbo.Table
Group By extension, directory
这会将所有目录汇总到一个目录,而不会为每个目录提供不同的值。此外,我也不知道如何“汇总”文件的数量。有人能帮忙吗?

这就是你想要的吗

SELECT extension, directory, sum(size) as size, count(*) as qty
From dbo.Table
Group By extension, directory;
这是一个非常基本的聚合查询。如果你能提出问题中的问题,我希望这是显而易见的。

这就是你想要的吗

SELECT extension, directory, sum(size) as size, count(*) as qty
From dbo.Table
Group By extension, directory;

这是一个非常基本的聚合查询。如果您能提出问题中的查询,我希望这是显而易见的。

选择…count(*)as[qty files]
这会将所有目录汇总到一个目录中,而不是每个目录都提供不同的值:但这不正是您所需要的吗?不@sstan我希望每个目录汇总所有类似的扩展名,为该目录中每个唯一的扩展名提供一个行项目。
选择…count(*)as[qty files]
这会将所有目录汇总到一个目录,而不是每个目录都给我不同的值:但这不正是您所需要的吗?不@sstan我希望每个目录汇总所有类似的扩展,每个目录中唯一的扩展都给我一个行项目。您是如何想出
avg()
(vs
sum()
)的这是我问的一个非常愚蠢的问题。谢谢你的回答。有趣的是,我原来的问题中的疑问确实起了作用。我怎样才能结束这个问题,以免论坛被垃圾搞得乱七八糟?@PM77-1。事实上,我看到了2.5版,但错过了.5版,所以我认为
avg()。谢谢你的回答。有趣的是,我原来的问题中的疑问确实起了作用。我怎样才能结束这个问题,以免论坛被垃圾搞得乱七八糟?@PM77-1。事实上,我看到了2.5版,但错过了.5版,所以我认为
avg()
是我的初衷。