簡體   English   中英

如何為SQL中的每條記錄獲取AVG

[英]how to get AVG for every record in SQL

例如,我需要為SQL中的每一行獲取AVG:

這是第一張桌子

+ ---+------+-------------+
| course_id | course_name | 
+ ----------+-------------+
| 1         | a           |
| 2         | b           | 
| 3         | c           | 
| 4         | g           | 
+ ---+------+-------------+

這是我需要獲取ID 1和2的AVG的第二張表,例如結果:

+ -------------------+------+----------+
| course_feedback_id | rate |course_id |
+ -================--+------+----------+
|       1            | 4    |   1      |
|       2            | 3    |   1      |
|       3            | 2    |   2      |
+ -------------------+------+----------+

這是我需要的最終答案

+ ----------------------+
| course_id | AVG(rate) |
+ -=======--+-----------+
|     1     | 3.5       |   
|     2     | 2         |   

+ ----------------------+

我嘗試過這種解決方案,但它只會給我第一行,而不是所有記錄。

SELECT *, AVG(`rate`) from secondTable 

請幫忙

SELECT `id`, AVG(`rate`) FROM `your_table` GROUP BY `id`

Select course_id,t2.rate from table1 where course_id,rate in (Select course_id,avg(rate) as rate from table group by course_id t2)

當您有多個條目/冗余條目並且想要查找每個聚合條目時,在這種情況下,您的ID包含冗余記錄,在這種情況下,請始終嘗試按名稱使用group by as group by,就像名稱將列的記錄分組一樣對其應用到的對象,如果您avg in this case應用聚合avg in this case則將其作為整體列應用於它,而不是像id 1一樣整體,我們有2個冗余條目,因此它將avg(id1_entries)..同樣地作為一個組。

嘗試這個:

SELECT c.course_id, AVG(fb.rate)
FROM course AS c
INNER JOIN course_feedback AS fb ON fb.course_id = c.course_id
GROUP BY c.course_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM