MySQL использование в день - PullRequest
1 голос
/ 31 марта 2020

У меня есть такая таблица.

+----+----------+--------+
| ID |   Date   | Amount |
+----+----------+--------+
|  1 | 1/1/2020 |     40 |
|  1 | 1/2/2020 |     50 |
|  2 | 1/3/2020 |     10 |
+----+----------+--------+

первая дата, указанная для идентификатора 1, будет датой их первого заказа. Второе свидание будет их вторым. Для каждого идентификатора может быть несколько дат обработки. Дата процесса для ID 2 является их первой датой процесса. Могут быть даты, когда обработка не выполняется для идентификатора, со следующей датой через несколько дней после предыдущей максимальной даты (например, 1/2/2020 -> 2/15/2020).

Мне нужен вывод, где ID 1 будет иметь столбцы, которые показывают сумму, обработанную по дням, как определено днем ​​от начала. Минимальная дата ID 1 будет иметь значение 40, минимальная дата +1 50, интеллектуальная дата + 2 0, например. ID 2 будет иметь минимальную дату 10, минимальную дату +1 0, минимальную дату + 2 0 и т. Д. c.

Вывод будет выглядеть так

+----+---------+--------+
| ID |   Day   | Amount |
+----+---------+--------+
|  1 | 1       |     40 |
|  1 | 2       |     50 |
|  2 | 1       |     10 |
+----+---------+--------+

Как go об этом?

1 Ответ

0 голосов
/ 31 марта 2020

Вы, похоже, ищите записи с одинаковым значением id, увеличивая day.

Если вы используете MySQL, это именно то, что делает row_number():

select t.*, row_number() over(partition by id order by day) new_id
from mytable t

Возможно, вы также захотите взглянуть на rank() и dense_rank(), в зависимости от как вы хотите управлять потенциальными связями (ie записей, имеющих одинаковые id и day).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...