SQL Query用于确定多个where子句的值是否更高

时间:2017-01-13 01:38:23

标签: sql

您好我只是SQL的初学者,我正在尝试确定表中的商品是否有高于卖价的买入价。查询结果应该显示表中有两个项目的买入价格高于卖出价格,葡萄和面包。表格中可以有多个订单,所以我试图对它们进行分组,这样它也会显示每个订单。

我一直在尝试使用这个SQL查询,但是我在关键字'where'

附近得到了错误的语法
SELECT * FROM Orders WHERE buy = 'false' AND price > price where buy = 'true' GROUP BY Id

enter image description here

1 个答案:

答案 0 :(得分:2)

对您的要求最宽松的解释是将最高买入价格与最低卖出价格进行比较,看看前者是否大于后者。可以实现的一种方法是通过Id进行分组并使用汇总来获得这些高买入和低卖价。

SELECT Id
FROM Orders
GROUP BY Id
HAVING MAX(CASE WHEN buy = 'true'  THEN price END) >
       MIN(CASE WHEN buy = 'false' THEN price END)