[英]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.