的行为,我无法理解下面的查询行为:混淆HAVING子句
select max(avg(salary)) from employees
group by first_name
having avg(salary) >= max(salary);
它打印出的结果为。但如果max(工资)是不应该有空的结果。如果我用“>”替换“>> =”“,它会将结果打印为NULL。
如果我替换“> =”与“<”,则13100打印在结果中。
下面是雇员表:
TJ 2100 Steven 2200 Hazel 2200 James 2400 Ki 2400 Karen 2500 James 2500 Joshua 2500 Peter 2500 Martha 2500 Randall 2500 Guy 2600 Randall 2600 Donald 2600 Douglas 2600 Irene 2700 John 2700 Sigal 2800 Mozhe 2800 Girard 2800 Vance 2800 Shelli 2900 Michael 2900 Timothy 2900 Anthony 3000 Kevin 3000 Alex 3100 Curtis 3100 Jean 3100 Alana 3100 Julia 3200 Stephen 3200 Winston 3200 Samuel 3200 Laura 3300 Jason 3300 Julia 3400 Trenna 3500 Renske 3600 Jennife 3600 Kelly 3800 Britney 3900 Sarah 4000 Alexis 4100 Diana 4200 Nandita 4200 Jennife 4400 David 4800 Valli 4800 Kevin 5800 Bruce 6000 Pat 6000 Sundita 6100 Amit 6200 Charles 6200 Sundar 6400 Shanta 6500 Susan 6500 David 6800 Luis 6900 Oliver 7000 Sarath 7000 Kimbe 7000 Mattea 7200 Eliza 7300 William 7400 Nanette 7500 Louise 7500 Ismael 7700 Jose 7800 Payam 7900 Matthew 8000 Christ 8000 Lindsey 8000 John 8200 Adam 8200 William 8300 Jack 8400 Jonath 8600 Alyssa 8800 Alex 9000 Daniel 9000 Peter 9000 Allan 9000 Patrick 9500 Danie 9500 David 9500 Tayler 9600 Hermann 10000 Harris 10000 Janette 10000 Peter 10000 Clara 10500 Eleni 10500 Gerald 11000 Den 11000 Ellen 11000 Lisa 11500 Alberto 12000 Shelley 12008 Nancy 12008 Michael 13000 Karen 13500 John 14000 Lex 17000 Neena 17000 Steven 24000
你到底在这里做?用简单的英语,_describe_你试图得到什么输出。 –
10行样本数据通常就足够了。同时向我们展示预期结果 - 因为我不明白你想要什么。 – jarlh
您可以检查'AVG(工资)> = MAX(工资)'和'AVG(工资)= MAX(工资)',结果应该是一样的。例如,如果你只有1记录 - 我们说的3000,那么这两个'avg'和'max'是3000 BTW,我相信你用'通过FirstName'组来计算'avg'和'max'。 – Prisoner