簡體   English   中英

MySQL 數據庫中的最小值

[英]Min value from Database in MySQL

我試圖找到過去 30 天的最小值,在我的表中每天有一個條目,我正在使用這個查詢

SELECT MIN(low), date, low 
FROM historical_data 
WHERE name = 'bitcoin' 
ORDER BY STR_TO_DATE(date,'%d-%m-%Y') DESC 
LIMIT 7

但是這個值沒有返回正確的值。 我的表的結構是

表結構在此處輸入圖片說明

存儲的表數據是這樣的

表格數據樣式在此處輸入圖片說明

現在我需要的是獲得最小的低值。 但是我的查詢不起作用它給了我錯誤的值,甚至在表中也不存在。

更新:

這是我更新的表結構。 在此處輸入圖片說明

這是我在這張表中的數據,看起來像這樣在此處輸入圖像描述

現在,如果你看一下數據,我想檢查令牌的名稱omisego和混帳從過去7天的低價值,這將是自2017-12-252017-12-19 ,並在這個轉換的低值9.67 ,但我當前的查詢和我的某個成員建議的查詢沒有帶來正確的答案。

更新 2:

http://rextester.com/TDBSV28042

在這里,基本上我有超過1400 coinstoken歷史數據,這意味着我將有超過 1400 個條目與2017-12-25相同的日期但名稱不同,我總共有超過650000條記錄。 所以每個日期都有許多不同名稱的條目。

要獲得每組最低的行,您可以使用以下內容

SELECT a.*
FROM historical_data a 
LEFT JOIN historical_data b ON a.name = b.name 
AND a.low > b.low
WHERE b.name IS NULL
AND DATE(a.date) >= '2017-12-19' AND DATE(a.date) <= '2017-12-25' 
AND a.name = 'omisego'

或者

SELECT a.*
FROM historical_data a 
JOIN (
    SELECT name,MIN(low) low
    FROM historical_data
    GROUP BY name
) b USING(name,low)
WHERE  DATE(a.date) >= '2017-12-19' AND DATE(a.date) <= '2017-12-25' 
AND a.name = 'omisego'

演示

對於 7 天或 n 天的最后 30 天,您可以將上述查詢寫為

SELECT a.*, DATE(a.`date`)
FROM historical_data2 a 
LEFT JOIN historical_data2 b ON a.name = b.name 
AND DATE(b.`date`) >= CURRENT_DATE() - INTERVAL 30 DAY 
AND DATE(b.`date`) <= CURRENT_DATE()
AND a.low > b.low
WHERE b.name IS NULL
AND a.name = 'omisego'
AND DATE(a.`date`) >= CURRENT_DATE() - INTERVAL 30 DAY
AND DATE(a.`date`) <= CURRENT_DATE()
;

演示

但請注意,它可能會返回多個低值相同的記錄,要在其中選擇 1 行,您必須在不同的屬性上指定另一個條件

考慮將相同的分組並運行子句

SELECT name, date, MIN(low)
FROM historical_data 
GROUP BY name
HAVING name = 'bitcoin' 
AND STR_TO_DATE(date, '%M %d,%Y') > DATE_SUB(NOW(), INTERVAL 30 DAY);

鑒於結構,上面的查詢應該會得到你的結果。

// 試試這個代碼 ..

SELECT MIN(`date`) AS date1,low
        FROM historical_data
 WHERE `date` BETWEEN now() - interval 1 month 
                  AND now() ORDER by low ASC;

暫無
暫無

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

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