簡體   English   中英

sql查詢或javascript代碼以計算數據庫中的月數,並將其與laravel中的總值相乘

[英]sql query or javascript code to count number of months in database and multiply that with total value in 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個月的條目以來用戶1的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

演示

COUNT(DISTINCT(MONTH(startdate)))為用戶計算一年中不同月份的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM