Mysql - 可以使用 Group By semester 吗?

标签 mysql date group-by

我需要在查询中使用每学期分组依据。任何人都知道有什么方法可以做到这一点?

如果我使用:

 `HAVING Date Between '2012-01 'and '2012-06'`

我相信它会起作用,但不会是查询的正确结果。

感谢任何帮助

最佳答案

你可以用这个-

+------+------------+
| id   | date       |
+------+------------+
| 1    | 2012-08-14 |
| 2    | 2012-09-20 |
| 3    | 2012-05-14 |
| 4    | 2012-05-08 |
| 5    | 2012-08-16 |
+------+------------+

INSERT INTO table_name VALUES 
  (1, '2012-08-14'),
  (2, '2012-09-20'),
  (3, '2012-05-14'),
  (4, '2012-05-08'),
  (5, '2012-08-16');

SELECT
  YEAR(date) year,
  IF(MONTH(date) < 7, 1, 2) semester,
  COUNT(*)
FROM
  table_name
GROUP BY
  year, semester;

+------+----------+----------+
| year | semester | COUNT(*) |
+------+----------+----------+
| 2012 |        1 |        2 |
| 2012 |        2 |        3 |
+------+----------+----------+

使用 HAVING 子句 -

SELECT
  YEAR(date) year,
  IF(MONTH(date) < 7, 1, 2) semester,
  COUNT(*)
FROM
  table_name
GROUP BY
  year, semester
HAVING
  semester = 1

+------+----------+----------+
| year | semester | COUNT(*) |
+------+----------+----------+
| 2012 |        1 |        2 |
+------+----------+----------+

关于Mysql - 可以使用 Group By semester 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943631/

相关文章:

r - 删除/删除每组 R 中的最后/第一行

mysql - 在另一个过程中使用 mysql 获取诊断

mysql - 仅按月和日比较日期

javascript - 使用 jquery 格式化和打印日期

mysql - SQL 多连接分组

sql-server - Azure SQL 数据库分组依据不排序

php - 从表中删除行的按钮 - PHP SQL

mysql - 在 mySQL 中组合行中的字符串

MySQL 按数字排序,最后为空

mysql - 关于使用 where 子句、日期间隔和 'and' 和/或 'or' 的混淆应该很快