Py学习  »  DATABASE

在mysql中获取当月部门总数和员工总数

parvez_faraz • 5 年前 • 1425 次点击  

我需要计算一个月内不同部门的员工总数,但不幸的是查询不起作用并抛出错误

Department_id emloyee_id   date_time

  1             1          2020-02-01
  1             2          2020-02-04 
  3             7          2020-02-06
  1             4          2020-02-07

预期产量

total department=2
total employee of all department=4

但所有这些都应该基于最后一条记录,我得到了sql语法错误

查询:

SELECT COUNT(DISTINCT department_id) x, COUNT(*) y 
  FROM department 
 WHERE date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01') 
   AND date_time<DATE(NOW()+INTERVAL 1 DAY and status='1'
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54384
文章 [ 2 ]  |  最新文章 5 年前
Barbaros Özhan
Reply   •   1 楼
Barbaros Özhan    5 年前

SELECT COUNT(DISTINCT Department_id), COUNT(DISTINCT employee_id)
  FROM department  
 WHERE date_time >= NOW() - INTERVAL 1 MONTH
   AND status = '1';

两者都算清楚。

更新: 本月 ,然后也是

AND date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01')

可能会像在原始查询中一样添加到此查询。

mattyx17
Reply   •   2 楼
mattyx17    5 年前

看来你应该用月而不是日,而且一个月又一个月都没有括号

SELECT COUNT(DISTINCT department_id) AS departments,
       COUNT(*) AS employees
FROM department
WHERE date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01')
AND date_time < DATE(NOW()+INTERVAL 1 MONTH)
AND status = '1';