2

クエリで学期ごとにグループを使用する必要があります。誰でもこれを行う方法を知っていますか?

私が使用する場合:

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

うまくいくと思いますが、クエリの正しい結果にはなりません。

どんな助けでも大歓迎です

4

3 に答える 3

6

あなたはこれを使うことができます -

+------+------------+
| 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 |
+------+----------+----------+
于 2012-08-14T09:39:16.777 に答える
0

一学期か二学期しか取れないという問題は、以下のように解決できました。

最初の学期のみを取得するには:

SELECT
  YEAR(date) year,
  IF(MONTH(date) < 7, 1, 2) semester,
  COUNT(*)
FROM
  table_name
WHERE 
  MONTH(date) NOT IN(7,8,9,10,11,12)    
GROUP BY
  year, semester;

助けてくれたすべてに感謝します。

于 2012-08-15T16:32:57.290 に答える