我想过滤计数的查询结果.
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(计数)值.我怎样才能做到这一点?
谢谢.
我想退回总销售额.也就是说整个数据集的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)
这些查询中的一个是否可以在另一个上执行(性能还是其他)?或者这仅仅是品味问题?
我在将两个表连接在一起时遇到一些困难,涉及一个SUM,它不包含在第二个表中.
即我有两张桌子:
ID|FirstName|LastName
1 |Billy |Blogs
2 |Bobby |Biggs
3 |Hill |Bill
4 |Super |Man
Run Code Online (Sandbox Code Playgroud)
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表中的主键.
我有一个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) 我有一个查询使用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)
仍然出现错误"选定的非聚合值必须是关联组的一部分"
请帮助我理解为什么必须成为小组的一部分,我该怎么做才能解决它?
我的查询
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'
我有这个查询,但我得到两列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?那么查询只会返回值?
我正在寻找一种在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) 我知道你可以使用窗口函数获得一部分数据的平均值,总数,最小值和最大值.但是,有可能得到中位数,或第25百分位而不是窗函数的平均值?
换句话说,我如何重写这个以获得每个区域内的ID和第25或第50百分位销售数字而不是平均值?
SELECT id, avg(sales)
OVER (PARTITION BY district) AS district_average
FROM t
Run Code Online (Sandbox Code Playgroud) 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 …