Dav*_*ues 2 mysql sql group-by count
我需要知道响应调查的用户数量.但他们可以回复一次或多次(在我的情况下,最多两次).
所以我有两张桌子:fs_users和fs_surveys.
fs_users:
  ID  | Name
  1     David
  2     John
fs_surveys:
  ID  | ID_User | Selected_Answer
  1     1         A
  2     1         C
  3     2         A
如果我直观地计算了回复调查的用户数量,我可以算一下2(大卫和约翰).通过查询,我可以知道这些人的回应是谁.喜欢:
SELECT 
  fs_users.ID, 
  fs_users.Name
FROM fs_users
INNER JOIN fs_surveys
  ON fs_surveys.ID_User = fs_users.ID
GROUP BY 
  fs_users.ID
它基本上将返回fs_users上面表示的相同数据.所以,直到这里我很好.问题是我需要有COUNT() 多少用户,而不是用户.
如果我只是改为SELECT:
SELECT
  COUNT(*)
...
我会收到这个:
result:
  COUNT(*) | INSTEAD_OF
  3          2
那么,我怎么能解决这个问题呢?再见!
SELECT COUNT(DISTINCT ID_User) FROM fs_surveys
在sqlfiddle上看到它.