我想以某种方式合并这些MySQL 5.6结果。这个想法是从每个id的最新和最旧的行中获取数据。配对时间/ id值是唯一的。
表是:
| time | id | titulo | precio | vendidos |
+---------------------+----+----------+--------+----------+
| 2019-10-26 19:12:14 | 1 | apple_a | 2 | 10 |
| 2019-10-26 19:12:14 | 2 | pea | 3 | 7 |
| 2019-10-26 19:12:14 | 3 | orange_a | 1 | 4 |
| 2019-10-28 19:12:14 | 3 | orange_a | 2 | 12 |
| 2019-10-28 19:12:14 | 4 | banana | 5 | 7 |
| 2019-10-28 19:12:14 | 5 | peach | 9 | 1 |
| 2019-10-29 19:12:14 | 1 | apple_b | 2 | 12 |
| 2019-10-29 19:12:14 | 2 | pea | 3 | 9 |
| 2019-10-29 19:12:14 | 3 | orange_b | 2 | 19 |
| 2019-10-29 19:12:14 | 4 | banana | 6 | 14 |
| 2019-10-30 19:12:14 | 1 | apple_b | 3 | 17 |
| 2019-10-30 19:12:14 | 2 | pea | 3 | 11 |
带代码:
-- Get latest rows for each id:
SELECT b.*
FROM (SELECT t.id, MAX(time) AS latest
FROM srapedpubs t GROUP BY id) a
INNER JOIN srapedpubs b ON b.id = a.id AND b.time = a.latest
ORDER BY id ASC
;
-- Get oldest rows for each id:
SELECT b.*
FROM (SELECT t.id, MIN(time) AS oldest
FROM srapedpubs t GROUP BY id) a
INNER JOIN srapedpubs b ON b.id = a.id AND b.time = a.oldest
ORDER BY id ASC
;
结果是:
| time | id | titulo | precio | vendidos |
|---------------------|----|----------|--------|----------|
| 2019-10-30 19:12:14 | 1 | apple_b | 3 | 17 |
| 2019-10-30 19:12:14 | 2 | pea | 3 | 11 |
| 2019-10-29 19:12:14 | 3 | orange_b | 2 | 19 |
| 2019-10-29 19:12:14 | 4 | banana | 6 | 14 |
| 2019-10-28 19:12:14 | 5 | peach | 9 | 1 |
| time | id | titulo | precio | vendidos |
|---------------------|----|----------|--------|----------|
| 2019-10-26 19:12:14 | 1 | apple_a | 2 | 10 |
| 2019-10-26 19:12:14 | 2 | pea | 3 | 7 |
| 2019-10-26 19:12:14 | 3 | orange_a | 1 | 4 |
| 2019-10-28 19:12:14 | 4 | banana | 5 | 7 |
| 2019-10-28 19:12:14 | 5 | peach | 9 | 1 |
SQL Fiddle:
http://sqlfiddle.com/#!9/a9fafc/1
如何合并两个选择以从最旧和最新的行中获取数据?最好忽略最旧和最新的相同行(例如ID 5,“桃子”)]
所需的输出:
| time | id | titulo | precio | vendidos | oldest_time | oldest_precio | oldest_vendidos |
|---------------------|----|----------|--------|----------|---------------------|---------------|-----------------|
| 2019-10-30 19:12:14 | 1 | apple_b | 3 | 17 | 2019-10-26 19:12:14 | 2 | 10 |
| 2019-10-30 19:12:14 | 2 | pea | 3 | 11 | 2019-10-26 19:12:14 | 3 | 7 |
| 2019-10-29 19:12:14 | 3 | orange_b | 2 | 19 | 2019-10-26 19:12:14 | 1 | 4 |
| 2019-10-29 19:12:14 | 4 | banana | 6 | 14 | 2019-10-28 19:12:14 | 5 | 7 |
我不知道该怎么做。我尝试了一些以不正确的结果结束的事情。那这里的人知道怎么做吗?