Mysql 如何限制/消除某些符合条件的记录?(右语法)

Mysql 如何限制/消除某些符合条件的记录?(右语法),mysql,sql,database,aggregate-functions,having-clause,Mysql,Sql,Database,Aggregate Functions,Having Clause,问题是1995年和1996年有多少次采访。您必须使用IN关键字进行比较。还有一个名为YEAR的函数,它将返回日期的年份部分 表: mysql> SELECT interviewdate "Date" -> FROM interview; +------------+ | Date | +------------+ | 1995-06-01 | | 1995-06-01 | | 1995-06-30 | | 1995-06-30 | | 1995-07-0

问题是1995年和1996年有多少次采访。您必须使用IN关键字进行比较。还有一个名为YEAR的函数,它将返回日期的年份部分

表:

mysql> SELECT interviewdate "Date"
    -> FROM interview;    

+------------+
| Date       |
+------------+
| 1995-06-01 |
| 1995-06-01 |
| 1995-06-30 |
| 1995-06-30 |
| 1995-07-01 |
| 1995-08-01 |
| 1995-08-01 |
| 1995-08-02 |
| 1995-12-01 |
| 1995-12-02 |
| 1995-12-04 |
| 1996-01-21 |
| 1996-02-01 |
| 1996-02-02 |
| 1996-07-01 |
| 1996-07-01 |
| 1996-08-01 |
| 1996-08-08 |
| 1996-08-11 |
| 1997-01-01 |
| 1997-01-01 |
| 1997-01-31 |
| 1997-02-01 |
| 1997-03-24 |
| 1997-03-31 |
| 1997-04-20 |
| 1997-04-22 |
| 1997-05-01 |
+------------+
28 rows in set (0.00 sec)
输出:

条件是只将日期为1995年和1996年的数据作为count*计入新表中。有人知道怎么做吗?我是mySQL新手,正在尝试理解其语法。我试过这样的方法:

SELECT interviewdate, COUNT(interviewdate) AS "COUNT(*)"
FROM interview
GROUP BY interviewdate
HAVING COUNT(interviewdate) == 1995 AND 1996;


+----------+
| COUNT(*) |
+----------+
|       19 |
+----------+
1 row in set (0.00 sec)
尝试:

这应该起作用:

select count(*)
from interview
where year(interviewdate) in (1995,1996)

如果需要将结果插入到新表中,则使用create table as-。

数字仍然是0,而不是19。当我看到它时,它完全有意义。很有魅力,谢谢@TheAmazingKnight-np,很高兴它有帮助。干杯
select count(*)
from interview
where year(interviewdate) in (1995,1996)