我想知道是否有人可以帮助我解决我正在尝试编写的查询。我正在使用SQL Server语法。
我正在尝试按组对这些行进行分组,并且与该组关联的最小日期和最大日期也会显示在我的输出中。
很抱歉,没有提供代码。我只是真的无法提出任何建议。这超出了我对SQL的理解。也不介意是否也将解释或理论添加到解决方案中以供学习。
再次感谢任何可以帮助我的人。
这里是例子。
数据样本:
+----------------+-------------+-------------------+-----------------+
| Name | Group | CheckInDate | CheckOutDate |
+----------------+-------------+-------------------+-----------------+
| Rogue | Group 1 | 01/03/2019 | 01/08/2019 |
+----------------+-------------+-------------------+-----------------+
| Larry | Group 3 | 01/01/2019 | 01/07/2019 |
+----------------+-------------+-------------------+-----------------+
| Jorge | Group 2 | 01/02/2019 | 01/04/2019 |
+----------------+-------------+-------------------+-----------------+
| Tara | Group 1 | 01/02/2019 | 01/07/2019 |
+----------------+-------------+-------------------+-----------------+
| Luca | Group 2 | 01/03/2019 | 01/08/2019 |
+----------------+-------------+-------------------+-----------------+
查询输出
+----------------+-----------------+-------------------+-----------------+
| Description | Count | CheckInDate | CheckOutDate |
+----------------+-----------------+-------------------+-----------------+
| Group 1 | 2 | 01/02/2019 | 01/08/2019 |
+----------------+-----------------+-------------------+-----------------+
| Group 2 | 2 | 01/02/2019 | 01/08/2019 |
+----------------+-----------------+-------------------+-----------------+
| Group 3 | 1 | 01/01/2019 | 01/07/2019 |
+----------------+-----------------+-------------------+-----------------+
答案 0 :(得分:1)
您需要group by
组,并在日期列上进行min
和max
:
SELECT
Group AS Description, COUNT(*) AS Count,
MIN(CheckInDate) AS CheckInDate,
MAX(CheckOutDate) AS CheckOutDate
FROM Dates
GROUP BY Group;