【发布时间】:2016-06-24 23:29:57
【问题描述】:
假设我有这张桌子:
+-----+------+------------+
| eid | dept | joining |
+-----+------+------------+
| 1 | IT | 1982-01-13 |
| 2 | IT | 1983-01-13 |
| 3 | CSE | 1984-04-13 |
| 4 | CSE | 1983-03-23 |
| 5 | IT | 1985-03-23 |
| 6 | ECE | 1986-03-23 |
| 7 | ECE | 1986-11-23 |
+-----+------+------------+
现在我想获取 1983 年 1 月 1 日之后加入的每个部门的员工人数记录。
我试过这个查询:
select count(a.eid) as total, dept
from (
select *
from t1
where dept = 'IT'
having DATE(joining) > '1982-01-01'
) as a;
+-------+------+
| total | dept |
+-------+------+
| 3 | IT |
+-------+------+
但我需要一张桌子上的所有部门。
select joining, dept, count(*)
from t1
group by dept
having(joining) > '1982-01-01'
order by joining;
没有这样的结果。
【问题讨论】:
-
Oracle 是如何参与其中的?
-
sql 查询可能因数据库而异...这就是为什么我会涉及 mysql/oracle...
-
但是你在这里使用的是哪一个? (如果没有,SQL 标记就足够了。)顺便说一句,那个 DATE 函数似乎是特定于产品的 - 或者?
-
oracle 10g 和 mysql
标签: java mysql sql select count