我试图在表格中获得所有最大的价值。假设我有一个名为TableA的表,这里是属性 我的当前查询在下面只显示一行。所以我想得到的值是所有数据的所有最大值的总和。
SELECT GREATEST(MAX(Side-1-Length), MAX(Side-2-Length)) from TableA where DateEnd >='2017-11-10';
以下是我的TableA
+---------+--------------+--------------+--------------+
| Id | Side-1-Length| Side-2-Length| DateEnd |
+---------+--------------+--------------+--------------+
| 64 | 22 | 21 | 2011-11-14 |
| 187 | 32 | 26 | 2011-11-15 |
| 325 | 12 | 18 | 2011-11-15 |
| 389 | 41 | 36 | 2011-11-16 |
| 495 | 62 | 41 | 2011-11-14 |
+---------+--------------+--------------+--------------+
我要显示的查询将输出类似下表
的内容+---------+--------------+--------------+
| Id | Side-Greates | DateEnd |
+---------+--------------+--------------+
| 64 | 22 | 2011-11-14 |
| 187 | 32 | 2011-11-15 |
| 325 | 18 | 2011-11-15 |
| 389 | 41 | 2011-11-16 |
| 495 | 62 | 2011-11-14 |
+---------+--------------+--------------+
并总结所有Side-Greates值
+---------+
| Sum |
+---------+
| 175 |
+---------+
答案 0 :(得分:0)
您可以尝试此查询。
我在查询中使用了CASE function()
来检查哪一方更大,然后选择它。我还使用SUM() function
来总结所有更大的值
SELECT
SUM( CASE
WHEN Side-1-Length > Side-2-Length
THEN Side-1-Length
ELSE Side-2-Length
END
) as sum_of_all_greater_value
FROM `TableA`
WHERE DateEnd >='2017-11-10';
答案 1 :(得分:0)
这是另一种选择,使用IF(expr1,expr2,expr3),然后选择Sum()。
SELECT
SUM(IF(Side-1-Length > Side-2-Length, Side-1-Length, Side-2-Length))
FROM TableA
WHERE DateEnd >= '2017-11-10';