我的目标是创建一个聚合函数(sum)并对元素进行分组,但是有一个错误
这是我所做的所有步骤
1-第一步代码
SELECT ca.question_id , ca.choice_0 ,ca.choice_1 ,ca.choice_2 ,ca.choice_3 ,ca.choice_4 ,q.headline_id FROM closed_answers ca
INNER JOIN questions q ON ca.question_id = q.id
INNER JOIN headline h ON q.headline_id = h.id
INNER JOIN forms f ON h.form_id = f.id
WHERE f.id = 2
Run Code Online (Sandbox Code Playgroud)
结果
http://img717.imageshack.us/img717/685/firststep.png
2-现在我想聚合选择并按标题id对它们进行分组,但是当我写的时候
SELECT sum(ca.choice_0) ,sum(ca.choice_1) ,sum(ca.choice_2) ,sum(ca.choice_3) ,sum(ca.choice_4) ,q.headline_id FROM closed_answers ca
INNER JOIN questions q ON ca.question_id = q.id
INNER JOIN headline h ON q.headline_id = h.id
INNER JOIN forms f ON h.form_id = f.id …Run Code Online (Sandbox Code Playgroud) select min(lead), max(lead)
from products
WHERE part_line != 90 and category = 'x'
Run Code Online (Sandbox Code Playgroud)
当我运行上面的查询时,返回的min大于max.如果我删除条件pline!= 90,问题就会消失.
我一开始就想到mysql在进行pline之前处理min,max ...但这并不能解释为什么它会分配更高的min.
什么让我,当我得到avg()它正确计算.
这是怎么回事?
Column1 Column2
1 Sharp
2 Sharp
3 Sharp
4 Eye
5 Eye
Run Code Online (Sandbox Code Playgroud)
我需要输出为
总名称
3 Sharp
2 Eye
Run Code Online (Sandbox Code Playgroud)
我试图在mysql选择查询中获取输出
考虑这个数据库结构:
__________ __________
| Trucks | | Mileage |
|__________|__________ |__________|________________________
| ID | DRIVER | | TRUCK_ID | MILEAGE | OIL_CHANGE |
|---------------------| |-----------------------------------|
| 1 | Tony | | 1 | 100000 105000 |
| 2 | George | | 2 | 6020 10020 |
| 3 | Mary | | 3 | 37798 41000 |
|_____________________| | 3 | 41233 47200 |
| 3 | 49000 |
|___________________________________|
Run Code Online (Sandbox Code Playgroud)
我想最终得到一个结果集,其中包含每个驾驶员的最大里程和最大油量变化.
_________________________________
| 1 | Tony | 100000 | …Run Code Online (Sandbox Code Playgroud) 例如,如果列A和列B具有值:
+---+---+
| A | B |
+---+---+
| 2 | 1 |
| 5 | 1 |
| 6 | 1 |
| 1 | 2 |
| 5 | 2 |
| 0 | 2 |
| 2 | 3 |
| 7 | 3 |
| 4 | 3 |
| 5 | 4 |
+---+---+
Run Code Online (Sandbox Code Playgroud)
从每组B中,我想得到A中最高的数字.但是,我不希望包含B中的数字较高但A值小于前一个的结果.我知道这在单词中没有意义,但这就是我想要的最终结果:
+---+---+
| A | B |
+---+---+
| 6 | 1 |
| 7 | 3 |
+---+---+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有类似"选择max(a),b来自table1 group …
我有一个表格,我想计算一列的平均值,但只计算最后 10 行。
SELECT AVG(columnName) as avg FROM tableName
Run Code Online (Sandbox Code Playgroud)
我不能直接申请 top 因为这个查询只返回一行。我需要一种方法来获取最新的 10 行并对它们求平均值。
我有一个包含以下示例信息的数据集:
ID DTE CNTR
1 20110102.0 2
1 20110204.0 3
1 20110103.0 5
2 20110205.0 6
2 20110301.0 7
2 20110302.0 3
Run Code Online (Sandbox Code Playgroud)
如果我想按月对信息进行分组并对计数器求和,那么我猜的代码就是:
SELECT t.ID,
,SUM CASE(WHEN t.DTE between 20110101 and 20110131 then t.CNTR else 0) as Jan
,SUM CASE(WHEN t.DTE between 20110201 and 20110228 then t.CNTR else 0) as Feb
,SUM CASE(WHEN t.DTE between 20110301 and 20110331 then t.CNTR else 0) as Mar
FROM table t
GROUP BY t.ID
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法将这些信息聚合到另外两个名为"月"和"年"的列中,并将其分组,这使我能够灵活地在许多不同的时间段内执行选择查询?
我正在使用SQL Server 2008 R2.我需要计算每组的百分位值,例如:
SELECT id,
PCTL(0.9, x) -- for the 90th percentile
FROM my_table
GROUP BY id
ORDER BY id
Run Code Online (Sandbox Code Playgroud)
例如,给定这个DDL(小提琴)---
CREATE TABLE my_table (id INT, x REAL);
INSERT INTO my_table
VALUES (7, 0.164595), (5, 0.671311), (7, 0.0118385), (6, 0.704592), (3, 0.633521), (3, 0.337268), (0, 0.54739), (6, 0.312282), (0, 0.220618), (7, 0.214973), (6, 0.410768), (7, 0.151572), (7, 0.0639506), (5, 0.339075), (1, 0.284094), (2, 0.126722), (2, 0.870079), (3, 0.369366), (1, 0.6687), (5, 0.199456), (5, 0.0296715), (1, 0.330339), (9, …Run Code Online (Sandbox Code Playgroud) 我知道之前问过这个问题,但我可能有不同的情况,我有这个表:
| PK_DATA | EVENT_TYPE | DATE |
-------------------------------------
| 123 | D | 12 DEC |
| 123 | I | 11 DEC |
| 123 | U | 10 DEC |
| 124 | D | 11 JAN |
| 124 | U | 12 JAN |
| 125 | I | 1 JAN |
-------------------------------------
Run Code Online (Sandbox Code Playgroud)
我想要一个查询给出max(DATE)分组,PK_DATE同时给出相应的EVENT_TYPE.... ie:
| 123 | D | 12 DEC |
| 124 | U | 12 …Run Code Online (Sandbox Code Playgroud) 我有一个与此类似的 PySpark DataFrame:
df = sc.parallelize([
("c1", "A", 3.4, 0.4, 3.5),
("c1", "B", 9.6, 0.0, 0.0),
("c1", "A", 2.8, 0.4, 0.3),
("c1", "B", 5.4, 0.2, 0.11),
("c2", "A", 0.0, 9.7, 0.3),
("c2", "B", 9.6, 8.6, 0.1),
("c2", "A", 7.3, 9.1, 7.0),
("c2", "B", 0.7, 6.4, 4.3)
]).toDF(["user_id", "type", "d1", 'd2', 'd3'])
df.show()
Run Code Online (Sandbox Code Playgroud)
这使:
+-------+----+---+---+----+
|user_id|type| d1| d2| d3|
+-------+----+---+---+----+
| c1| A|3.4|0.4| 3.5|
| c1| B|9.6|0.0| 0.0|
| c1| A|2.8|0.4| 0.3|
| c1| B|5.4|0.2|0.11|
| c2| A|0.0|9.7| 0.3|
| c2| …Run Code Online (Sandbox Code Playgroud)