1
好吧,我已經通過帖子搜索,但無法找到我想要做的具體查詢的答案。我有一個非常簡單的表:mysql查詢 - 找到匹配給定日期範圍的列
mysql> DESCRIBE offpeak_mccavg_raw;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| date | date | YES | | NULL | |
| node | varchar(30) | YES | | NULL | |
| price | decimal(6,4) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
每一天,有一個給定節點和給定的價格(注約1700項,在下面的例子中的日期是不連續的我一直在測試一些事情。所以這就是爲什麼日期路要走。通常情況下,將每一天的條目。)
mysql> select * from offpeak_mccavg_raw order by node limit 10;
+------------+---------------+---------+
| date | node | price |
+------------+---------------+---------+
| 2012-01-08 | AEC | -0.4083 |
| 2013-01-18 | AEC | 1.2125 |
| 2013-01-18 | AECI | -1.7575 |
| 2012-01-08 | AECI | -1.2488 |
| 2013-01-18 | AECI.ALTW | -5.0950 |
| 2012-01-08 | AECI.ALTW | -6.3258 |
| 2013-01-18 | AECI.AMMO | -0.4725 |
| 2012-01-08 | AECI.AMMO | -0.8117 |
| 2013-01-18 | AECI.APM_1.AZ | -0.9088 |
| 2012-01-08 | AECI.APM_1.AZ | -0.7729 |
+------------+---------------+---------+
我試圖找到對具有相同的價格每天都在給定的日期範圍內的節點。如果我只有1天的數據,我就可以編寫一個查詢,查找與給定日期匹配的對 - 但不會超過一定的天數。理想情況下,我想運行一個查詢,顯示在過去的2周,2個月匹配價格的節點的所有對等
下面是某一天的工作查詢:
SELECT b1.node, b2.node FROM onpeak_mccavg_raw AS b1 LEFT JOIN onpeak_mccavg_raw AS b2 ON b1.price = b2.price WHERE b1.node < b2.node;
我試圖擴展WHERE子句並添加一個日期範圍,但它不起作用。
任何想法?
感謝您的回覆!我試過查詢,它似乎與一對夫婦的例外。 1)我忘了在原文中說這個,但是查詢不應該顯示節點匹配,如果它們沒有每天出現。因此,如果第2天的2個節點匹配,但第2天沒有其中一個節點的條目,則它不應返回該結果。 2)如何修改給定日期範圍的查詢。我可以放一個「where b1.date介於和之間嗎?3)查詢非常慢,大概需要5分鐘才能運行2天任何提高查詢性能的方法? –
user1750444