【发布时间】:2019-03-08 14:29:26
【问题描述】:
我有两张桌子,它们是足球和足球资产。
足球看起来像:-
id | pair | name | date | price | sell | fetched
---------------------------------------------------------------------------------
6 | luca-antonelli | Luca Antonelli | 2018-12-20 04:57:36 | 0.50 | 0.47 | 1
7 | luca-antonelli | Luca Antonelli | 2018-09-06 12:39:58 | 0.65 | 0.52 | 1
8 | luca-antonelli | Luca Antonelli | 2018-10-15 16:45:28 | 0.59 | 0.49 | 1
9 | ryan-fraser | Ryan Fraser | 2018-03-28 08:56:57 | 5.51 | 0.47 | 1
10 | ryan-fraser | Ryan Fraser | 2018-04-20 06:19:07 | 7.28 | 0.49 | 1
11 | jordon-ibe | Jordon Ibe | 2018-10-14 22:52:58 | 11.23 | 0.17 | 1
12 | jordon-ibe | Jordon Ibe | 2018-11-25 19:37:26 | 2.31 | 0.29 | 1
所以你可以看到一共有三行,所以它会从这里根据日期选择价格 足球资产如下所示:-
id | pair | Club
-----------------------------------
86 | luca-antonelli | Liverpool
87 | ryan-fraser | Liverpool
88 | jordon-ibe | Liverpool
所以利物浦俱乐部有 3 名球员。如果您查看足球桌,您会发现它们的价格不同。因此它将根据每个玩家的日期时间选择最新价格,然后将其相加。 pair 是两个表之间的公共列。所以有很多这样的记录。我想总结该俱乐部所有球员的价格,但价格将是最新的。 price 将从 football 表中的 date 列中获取。输出如下:-
club | price
------------------
Liverpool | 28.07
我试过的查询是:-
SELECT club, SUM(price) as price from football JOIN football_assets ON football_assets.pair = football.pair WHERE club IN ('Paris Saint-Germain', 'Lille', 'Lyon')
一个玩家有很多价格,但我只想将他们的最新价格相加。上面的查询是对所有价格求和。我想要那个优化。
任何帮助将不胜感激。
【问题讨论】:
-
您需要显示更多行以获得更好的清晰度。另外,
latest price to be summed是什么意思?如果最新的价格在你的表中只有 1 行,需要求和吗? -
@vivek_23 不止一行。我只是举了一个例子。
-
@vivek_23 我已经更新了代码,请检查并告诉我。
-
输出
28.07是所有价格的总和。那么,哪里只考虑最新的呢? -
@vivek_23 这是错误的,它是添加所有价格而不是最新价格。