簡體   English   中英

如何編寫一個查詢來獲取mysql中的計數

[英]how can i write as one query to get count in mysql

在此輸入圖像描述

我想獲得今天的用戶數和昨天的用戶數量,我想只寫一個查詢我該怎么做...?

這些是我的查詢我只想要一個查詢:

SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,1 as todayCount

SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,0 as yesterdayCount

我的預期結果還是只有2列

todayCount yesterdayCount
     2          4

這應該做的伎倆:

SELECT COUNT(CASE 
                WHEN visited_date = CURDATE() THEN 1 
             END) AS todayCount ,
       COUNT(CASE 
                WHEN visited_date = CURDATE() - INTERVAL 1 DAY THEN 1 
             END) AS yesterdayCount 
FROM visitors  
WHERE visited_date IN (CURDATE(), CURDATE() - INTERVAL 1 DAY)
GROUP BY visited_date
ORDER by visited_date 

如果你知道當前和以前的日期,那么你可以這樣做:

SELECT SUM(visited_date = CURDATE()) as today,
       SUM(visited_date = CURDATE() - interval 1 day) as yesterday
FROM visitors
WHERE visited_date >= CURDATE() - interval 1 day;

如果您不知道這兩天,那么您可以做類似的事情,獲取數據中的最新日期:

SELECT SUM(v.visited_date = m.max_vd) as today,
       SUM(v.visited_date < m.max_vd) as yesterday
FROM visitors v CROSS JOIN
     (SELECT MAX(v2.visited_date) as max_vd FROM visitors v2) as m
WHERE v.visited_date >= m.max_vd - interval 1 day

試試這個簡單的查詢

select visited_date as date, COUNT(*) as count from `visitors` 
group by `visited_date` order by `visited_date` asc

它會產生輸出

在此輸入圖像描述

它會對你有用。

試試這個:$ sqlToday =“選擇COUNT(*)FROM menjava WHERE DATE(date_submitted)= CURRENT_DATE()”;

$ sqlY yesterday =“選擇COUNT(*)FROM menjava WHERE DATE(dc_created)= CURDATE() - INTERVAL 1 DAY”;

暫無
暫無

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

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