javascript - sql 查询或 javascript 代码来计算数据库中的月数并将其乘以 laravel 中的总值

标签 javascript mysql sql laravel

我遇到了一个小登录,无法破解。任何帮助将不胜感激。

我有一个数据库如下。

  username    startdate   enddate     timedifference 
      user1   12-07-2017   13-07-2017  24
      user2  12-06-2017   13-06-2017   24
      user1   11-05-2016   12-05-2016  24
      user2   13-03-2016   15-03-2016  48
      user3   9-02-2015   10-02-2015   24
      user1   11-09-2017  12-09-2017   24
      user1   10-08-2017  11-08-2017   24

自 2017 年 3 个月以来 user1 2017 年的预期产出 = ((24+24+24)/(3*24*30))*100 = 3.33%

现在我想找到

   value = (totaltimedifference)/(number of months data in database * 24*30) *100

基本上我想找到百分比。

到目前为止我的代码是

$percentageutilizationtesting = graphdata::select(DB::raw("
            (SUM(month(start))*(count(month(start)* 24*30)*100) as month, SUM(difference) as data, userid as username, year(start) as year"))     
                             ->groupBy(DB::raw("month(start)"))
                             ->groupBy(DB::raw("year(start)"))
                             ->groupBy('userid')
                             ->get()
                             ->toArray();

我尝试了 count(month(start)) 但它正在计算该月的条目总数,而我只想乘以该年的月数。

我无法找到月数,并且我不知道要执行的正确查询,或者如果在 Laravel 中不可能,请帮助我使用 JavaScript 代码。

非常感谢您的帮助。

最佳答案

我不知道 Laravel 语法,但 MySQL 查询应该是:

SELECT username, YEAR(startdate) AS year, SUM(timedifference)/(COUNT(DISTINCT(MONTH(startdate)))*24*30)*100 AS average
FROM graphdata
GROUP BY username, year

DEMO

COUNT(DISTINCT(MONTH(startdate))) 计算用户一年中不同月份的数量。

关于javascript - sql 查询或 javascript 代码来计算数据库中的月数并将其乘以 laravel 中的总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366707/

相关文章:

mysql - 奇怪的MySQL查询计划: why is this query using temporary & filesort?如何优化?

PHP SQL 多表分层 foreach 内的 foreach 内的 foreach 仅具有以上 1 级的引用

mysql - 在mysql中插入触发器之前

javascript - 获取最外层 div 元素(最高父元素)的 HTML

mysql - 从名字和姓氏生成唯一的用户名?

mysql - 如何不重复存储在数据库中的值

mysql - 查询或在两列中然后返回一个名称

javascript - ESLint prefer-arrow-callback on array.map

javascript - Laravel 5.0 : Implementation of Notification System(Facebook, Twitter 和 stackoverflow)

javascript - 使用Javascript测量当前窗口