标签: aggregate-functions

计数查询过滤器

我想过滤计数的查询结果.

select count(distinct tmr_id) AS Count ,CONTRACTID from status_handling 
Run Code Online (Sandbox Code Playgroud)

此查询返回2列,如:

计算ContractID

1    23344
2    28344
2    34343
2    29344
1    26344 
Run Code Online (Sandbox Code Playgroud)

我只是过滤2(计数)值.我怎样才能做到这一点?

谢谢.

oracle select filtering aggregate-functions

1
推荐指数
1
解决办法
920
查看次数

将SQL SUM一起添加的首选语法

我想退回总销售额.也就是说整个数据集的UnitPrice + TaxAmount.我可以用两种不同的方式编写SQL查询,返回相同的结果.

SELECT SUM(UnitPrice + TaxAmount) AS 'TotalSales' FROM Sales
Run Code Online (Sandbox Code Playgroud)

要么

SELECT SUM(UnitPrice) + SUM(TaxAmount) AS 'TotalSales' FROM Sales
Run Code Online (Sandbox Code Playgroud)

这些查询中的一个是否可以在另一个上执行(性能还是其他)?或者这仅仅是品味问题?

sql database aggregate-functions

1
推荐指数
1
解决办法
1409
查看次数

表连接包括没有条目的行 - SUM()

我在将两个表连接在一起时遇到一些困难,涉及一个SUM,它不包含在第二个表中.

即我有两张桌子:

tblClient

 ID|FirstName|LastName
 1 |Billy    |Blogs
 2 |Bobby    |Biggs
 3 |Hill     |Bill
 4 |Super    |Man
Run Code Online (Sandbox Code Playgroud)

tblComplete

 PurchaseID|ID|Amount
 123123    |1 |26.00
 43254     |2 |22.00
 546275    |3 |15.00
 463565    |3 |15.00
 343252    |1 |56.00
Run Code Online (Sandbox Code Playgroud)

我想要做的是将这两个表连接在一起,以便得到以下输出:

 ID|FirstName|LastName| SUM(Amount)
 1 |Billy    |Blogs   | 82.00
 2 |Bobby    |Biggs   | 22.00
 3 |Hill     |Bill    | 30.00
 4 |Super    |Man     | 0
Run Code Online (Sandbox Code Playgroud)

我希望Super Man被包含在输出中,总和为零,因为他没有购买任何东西.我该怎么做呢?

编辑:tblComplete表中的主键.

sql t-sql sql-server sql-server-2000 aggregate-functions

1
推荐指数
1
解决办法
403
查看次数

如何在MySQL中找到每个事件的最佳分数?

我有一个MySQL表,其中包含运动员进行的一系列测试的数据.我想为每个活动获得最好的结果.

这是包含运动员所有测试数据的表格:

+---------+-----------+-------+
| eventId | athleteId | score |
+---------+-----------+-------+
| 1       | 129907    | 900   |
| 2       | 129907    | 940   |
| 3       | 129907    | 927   |
| 4       | 129907    | 856   |
| 1       | 328992    | 780   |
| 2       | 328992    | 890   |
| 3       | 328992    | 936   |
| 4       | 328992    | 864   |
| 1       | 492561    | 899   |
| 2       | 492561    | 960 …
Run Code Online (Sandbox Code Playgroud)

mysql aggregate-functions

1
推荐指数
1
解决办法
184
查看次数

使用具有聚合函数和group by子句的case

我有一个查询使用CASE与聚合函数和group by子句,像这样

SELECT
A
,B
,C
,CASE
     WHEN <COLUMN_NAME_A> IS NOT NULL 
     THEN (SUM(<COLUMN_NAME_B>) * <COLUMN_NAME_A>)
          ELSE 0
END AS <ALIAS>
FROM <TARGET_TABLE>
GROUP BY
A
,B
,C
,<ALIAS>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误"GROUP BY和WITH ... BY子句可能不包含聚合"

然后,我改变我的脚本(从组中排除)

SELECT
A
,B
,C
,CASE
     WHEN <COLUMN_NAME_A> IS NOT NULL 
     THEN (SUM(<COLUMN_NAME_B>) * <COLUMN_NAME_A>)
          ELSE 0
END AS <ALIAS>
FROM <TARGET_TABLE>
GROUP BY
A
,B
,C
Run Code Online (Sandbox Code Playgroud)

仍然出现错误"选定的非聚合值必须是关联组的一部分"

请帮助我理解为什么必须成为小组的一部分,我该怎么做才能解决它?

sql group-by case aggregate-functions

1
推荐指数
1
解决办法
4万
查看次数

SQL Server聚合函数查询错误

我的查询

SELECT TOP 1 *, COUNT(*) AS totalRun 
FROM history 
ORDER BY starttime DESC`
Run Code Online (Sandbox Code Playgroud)

估计结果是历史表中1行的所有数据,其中包含最新记录,以及包含记录总数starttime的字段totalrun,但是......我得到以下错误.

消息8120,级别16,状态1,行1
列"history.id"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

我究竟做错了什么?

EDIT
结果示例: 预期结果 这些是行的所有字段,在历史记录表中具有最新的开始时间,并带有额外的COUNT字段'totalRun'

sql sql-server aggregate-functions

1
推荐指数
1
解决办法
3494
查看次数

SQL查询后删除重复列

我有这个查询,但我得到两列houseid:

我怎么只得到一个?

SELECT vehv2pub.houseid, vehv2pub.vehid, vehv2pub.epatmpg, 
       dayv2pub.houseid, dayv2pub.trpmiles
FROM vehv2pub, dayv2pub
WHERE vehv2pub.vehid >= 1
      AND dayv2pub.trpmiles < 15
      AND dayv2pub.houseid = vehv2pub.houseid;
Run Code Online (Sandbox Code Playgroud)

而且,我如何获得平均值epatmpg?那么查询只会返回值?

sql postgresql join aggregate-functions

1
推荐指数
1
解决办法
737
查看次数

SQL中的条件求和

我正在寻找一种在select语句中添加创建求和的方法,该语句以另一个字段为条件.最好用一个例子来解释.

假设我们在表中有以下值

EmployeeID     SalesQty      Verified
0025           34            Y
0040           56            Y
0040           17            N
0040           44            Y
Run Code Online (Sandbox Code Playgroud)

然后我想返回以下内容,其中总销售额是EmployeeId上所有salesqty值的总和,而经过验证的销售总额只有那些经过验证的记录是Y.

EmployeeID      TotalSales      VerfifiedSales
0025            34              34
0040            117             100
Run Code Online (Sandbox Code Playgroud)

sql aggregate-functions

1
推荐指数
1
解决办法
149
查看次数

使用窗口函数计算百分位数

我知道你可以使用窗口函数获得一部分数据的平均值,总数,最小值和最大值.但是,有可能得到中位数,或第25百分位而不是窗函数的平均值?

换句话说,我如何重写这个以获得每个区域内的ID和第25或第50百分位销售数字而不是平均值?

SELECT id, avg(sales)
    OVER (PARTITION BY district) AS district_average
FROM t
Run Code Online (Sandbox Code Playgroud)

postgresql aggregate-functions postgresql-9.5

1
推荐指数
1
解决办法
3573
查看次数

查找对战次数最多的球队

I have the following table called Involves:

match  |  team
10     |  A
10     |  B
20     |  B
20     |  C
30     |  C
30     |  A
40     |  D
40     |  C
50     |  A
50     |  B
Run Code Online (Sandbox Code Playgroud)

The values in the column 'match' refer to the unique id of the match and the values in the column 'team' refer to the unique id of the team.

I am trying to write a query that will output the …

sql postgresql aggregate-functions

1
推荐指数
1
解决办法
45
查看次数