I have a table comment
and a table price
like below. The key columns in both tables are ticker_id
, price_datetime
and price_open
. The last column threshold
in table comment
(which currently NULL) is something that I need to fill in with after some calculation queries (if this is achievable).
comment
table:
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| comment_id | comment_datetime | author | comment | ticker_id | price_datetime | price_open | threshold |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 1 | 2014-09-22 06:05:00 | A1 | C1 | 343 | 2014-09-22 08:00:00 | 53.25000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 2 | 2014-09-22 06:39:00 | A2 | C2 | 1 | 2014-09-22 08:00:00 | 62.00000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 3 | 2014-09-22 08:13:00 | A3 | C3 | 178 | 2014-09-22 08:13:00 | 5.15000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
price
table:
+----------+---------------------+------------+-----------+
| price_id | price_datetime | price_open | ticker_id |
+----------+---------------------+------------+-----------+
| 1 | 2014-09-22 08:01:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
| 2 | 2014-09-22 08:02:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
| 3 | 2014-09-22 08:03:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
In each row of table comment
, price_open
will be used as "base price".
For each row of table
comment
- Match the
ticker_id
,price_datetime
andprice_open
with tableprice
- Then, get the +-2 days for each
price_datetime
(follows with theprice_open
) - Then, count whether any of the
price.price_open
within that 5 days exceeds 5%, 10% or 15% of the "base price"
- Match the
Conditions:
- If any of the
price.price_open
within that 5 days equals/exceeds 15% of the "base price", then fill incomment.threshold
with "R" - If any of the
price.price_open
within that 5 days equals/exceeds 10% of the "base price" (but less than 15%), then fill incomment.threshold
with "A" - If any of the
price.price_open
within that 5 days equals/exceeds 5% of the "base price" (but less than 10%), then fill incomment.threshold
with "Y" - If any of the
price.price_open
within that 5 days is less 5%, then fill incomment.threshold
with "C" - For empty values in columns
comment.price_datetime
andcomment.price_open
, we will leave it NULL as it is, thus NULL forcomment.threshold
as well.
- If any of the
Is the above going to be achievable in MySQL using JOIN? I am trying to learn about JOIN right now, unfortunately it seems way too complicated to me, I have no clue about the query that I should execute as I just started learning MySQL.
I've tried explaining my question in details, but if there's anything unclear, kindly let me know.
Any help would be much appreciated. Thank you.
Aucun commentaire:
Enregistrer un commentaire