第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在MySQL中計算運行總數(shù)

在MySQL中計算運行總數(shù)

牧羊人nacy 2019-06-16 14:39:40
在MySQL中計算運行總數(shù)我有一個MySQL查詢:SELECT DAYOFYEAR(`date`)  AS d, COUNT(*) FROM  `orders` WHERE  `hasPaid` > 0GROUP  BY dORDER  BY d返回如下內(nèi)容:d  | COUNT(*) |20 |  5       |21 |  7       |22 | 12       |23 |  4       |我真正想要的是在結(jié)尾的另一篇專欄文章,以顯示正在運行的總數(shù):d  | COUNT(*) | ??? |20 |  5       |   5 |21 |  7       |  12 |22 | 12       |  24 |23 |  4       |  28 |這個是可能的嗎?
查看完整描述

3 回答

?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

對于您來說,這可能是一個更簡單的解決方案,可以防止數(shù)據(jù)庫執(zhí)行大量的查詢。它只執(zhí)行一個查詢,然后在一次傳遞中對結(jié)果做一些計算。

SET @runtot:=0;SELECT
   q1.d,
   q1.c,
   (@runtot := @runtot + q1.c) AS rtFROM
   (SELECT
       DAYOFYEAR(`date`) AS d,
       COUNT(*) AS c    FROM  `orders`
    WHERE  `hasPaid` > 0
    GROUP  BY d    ORDER  BY d) AS q1

這將為您提供一個額外的RT(運行總計)列。不要錯過頂部的set語句,以便首先初始化正在運行的ALUL變量,否則只會得到NULL值的列。


查看完整回答
反對 回復(fù) 2019-06-16
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

SELECT 
   DAYOFYEAR(O.`date`)  AS d, 
   COUNT(*),
   (select count(*) from `orders` 
       where  DAYOFYEAR(`date`) <= d and   `hasPaid` > 0)FROM  
  `orders` as OWHERE  
  O.`hasPaid` > 0GROUP  BY dORDER  BY d

這將需要一些語法調(diào)優(yōu)(我沒有MySQL來測試它),但它向您展示了這個想法。子查詢只需返回并將您已經(jīng)包含在外部查詢中的所有新內(nèi)容加起來,并且它必須對每一行都這樣做。

看一看這個問題如何使用聯(lián)接來完成相同的任務(wù)。

用不斷增長的數(shù)據(jù)來解決性能下降的問題:因為有最大值。一年中有366天,我假設(shè)您沒有針對多年運行此查詢,子查詢將被評估366次。有了正確的日期索引和hasPaid標(biāo)志,您就會沒事的。


查看完整回答
反對 回復(fù) 2019-06-16
?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

從MySQL 8開始,您將使用窗口函數(shù)對于這種查詢:

SELECT dayofyear(`date`) AS d, count(*), sum(count(*)) OVER (ORDER BY dayofyear(`date`))FROM `orders`WHERE `hasPaid` > 0GROUP BY dORDER BY d

在上面的查詢中,聚合函數(shù)count(*)嵌套在窗口函數(shù)中。sum(..) OVER (..),這是可能的,因為SQL中操作的邏輯順序..如果這太讓人費解,您可以很容易地使用派生表或WITH條款要更好地構(gòu)造查詢:

WITH daily (d, c) AS (
  SELECT dayofyear(`date`) AS d, count(*)
  FROM `orders`
  WHERE `hasPaid` > 0
  GROUP BY d)SELECT d, c, sum(c) OVER (ORDER BY d)ORDER BY d


查看完整回答
反對 回復(fù) 2019-06-16
  • 3 回答
  • 0 關(guān)注
  • 1134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號