一尘不染

如何避免团体但要求最少人数?

sql

我已经回答并阅读了许多有关获得每组最多n个问题的问题,但现在发现自己需要相反的建议。

我有一个结果集,该结果集显示了学生,日期和项目,这些数据表示在指定日期哪些学生在从事项目。

我想看到当天有多位学生从事某个项目的行。因此,如果我的结果集如下所示:

| student |    date    | project |
+---------+------------+---------+
|    1    | 2014-12-04 |    1    |
|    2    | 2014-12-04 |    1    |
|    3    | 2014-12-04 |    1    |
|    1    | 2014-12-03 |    1    |

我只希望看到前三行,所以我可以看到1,2,3学生在同一天共同完成了同一项目。我可以这样过滤:

GROUP BY date, project
HAVING COUNT(*) > 1

但随后仅返回一行。


阅读 123

收藏
2021-05-30

共1个答案

一尘不染

您可以将现有查询用作子查询并获取结果

SQL FIDDLE DEMO

SELECT * from Table1 T1
JOIN
(
  SELECT date, project
  from table1
  group by date, project
  having count(*) >1
) t
on t1.date = t.date
and t1.project = t.project
2021-05-30