用相似的名字找到最大的价值

时间:2018-11-30 18:36:17

标签: mysql

你好,我想弄清楚如何转换这张桌子

+----+------------+-------+-------+---------------------+
| id | profile_id | name  | value |        added        |
+----+------------+-------+-------+---------------------+
|  1 |          1 | Item1 |   100 | 2018-11-30 17:08:38 |
|  2 |          1 | Item1 |   140 | 2018-11-30 17:18:38 |
|  3 |          1 | Item2 |   120 | 2018-11-28 17:08:38 |
|  4 |          2 | Item1 |   110 | 2018-11-03 17:08:38 |
|  5 |          3 | Item3 |   120 | 2018-11-30 17:08:38 |
|  6 |          3 | Item4 |   100 | 2018-11-29 17:08:38 |
+----+------------+-------+-------+---------------------+

变成这样

+----+------------+-------+-------+---------------------+
| id | profile_id | name  | value |        added        |
+----+------------+-------+-------+---------------------+
|  2 |          1 | Item1 |   140 | 2018-11-30 17:18:38 |
|  3 |          1 | Item2 |   120 | 2018-11-28 17:08:38 |
|  5 |          3 | Item3 |   120 | 2018-11-30 17:08:38 |
|  6 |          3 | Item4 |   100 | 2018-11-29 17:08:38 |
+----+------------+-------+-------+---------------------+

基本上,它应该显示唯一的“名称”和“ profile_id”(显示给定名称的“值”字段的最大值)。我尝试过这样的事情

SELECT DISTINCT(t.profile_id),t.name,t.value FROM table as t ORDER BY t.value DESC;

还应该有一个where子句,其添加日期不能早于7天。

进一步说明:profile_id可以存储相同的名称,只有值和添加的时间会改变。它应该只返回唯一的名称和找到的最高值。

如果我不清楚,请随时询问更多详细信息。

感谢您的帮助。

0 个答案:

没有答案