我喜欢从同一列中提取MIN和MAX值。因为我正在使用Group By所以我必须使用min和max。如果我只是使用整个列,它会给我一个错误,你必须使用Group By
的聚合函数我该怎么做
ValueA = MAX(ValueB)+ MIN(ValueB)
什么是正确的语法?
任何?
,第二个问题是
如何在这种情况下使用2个案例陈述
select
ValueA = Case ValueC
when ValueB then ValueC
else ''
End
Case ValueD
when ValueE is blank then ValueD is also blank
END
From TableA
使用上面的2个案例语句给我2列,我想要1列 再加上第二个案例陈述我刚刚编写了我想要的算法
如何修复此代码?
答案 0 :(得分:1)
你是说这个吗?:
SELECT
MAX(ValueB) + MIN(ValueB) AS ValueA
FROM
tableX
GROUP BY
columnX
答案 1 :(得分:0)
在select子句中添加你想要分组的列名。我认为它有效,而不是给出错误
select max(valueB)+min(ValueB)as valueB,columnX from tbl group by columnX
答案 2 :(得分:0)
问题1:
取决于该group by子句。请粘贴您正在使用的实际代码。
如果您想为每个columnX使用每个ValueB,请将其添加到您的组中,即
group by columnX, ValueB
或者,如果您只想要每个ValueB一次。然后
SELECT DISTINCT ValueB from tableX
问题2:
相当混乱的描述。提供示例输入和输出数据。
我最好的猜测是你要求,如果B = C和E =''和D =''返回C ELSE''
即
SELECT CASE WHEN B = C AND E = '' AND D = '' THEN C ELSE '' END as A
FROM tableA
答案 3 :(得分:0)
你的意思是CASE吗?
SELECT ValueA,
CASE
when ValueB = ValueA THEN ValueC
else ''
End as ValueC,
CASE
when ValueE IS NULL THEN ''
END AS ValueD
很难准确理解您的需求。您能否添加您拥有的数据(多行)以及您希望获得的输出? 大多数人不喜欢数据的图像,但总比没有好。 :-)谢谢!