分析完精华题解的思路后,自己写了一遍

SELECT university,
COUNT(question_id) / COUNT(distinct qpd.device_id) AS avg_answer_cnt
FROM question_practice_detail AS qpd
INNER JOIN user_profile AS up
ON up.device_id = qpd.device_id
GROUP BY university
ORDER BY university

学到的重点:

  1. 如果一个字段,在不同的表中只出现了一次,可以不加表名
  2. 如果一个字段,在不同的表中重复出现,那每次使用之前,都要加表名
  3. ON的作用,类似于WHERE和HAVING,但是ON是和JOIN一起用的
  4. JOIN后面加表名
  5. JOIN VS INNER JOIN: JOIN and INNER JOIN will return the same result.

INNER is the default join type for JOIN, so when you write JOIN the parser actually writes INNER JOIN.[https://www.w3schools.com/sql/sql_join_inner.asp](SQL INNER JOIN, w3schools)

INNER JOIN的语法:

SELECT column_name(s)[列名]
FROM table1[表1]
INNER JOIN table2[表2]
ON table1.column_name = table2.column_name;