我有一個關於最大的一些問題()sql:Max()-1是什麼意思?
是什麼下面的查詢是什麼意思?
SELECT MAX(X) -1 FROM T
我瞭解到,語法應爲:
SELECT (MAX(X) -1) as max_minus_one FROM T
沒有?聚合函數(即
Max()
)後面必須跟着GRUOP BY
?
我有一個關於最大的一些問題()sql:Max()-1是什麼意思?
是什麼下面的查詢是什麼意思?
SELECT MAX(X) -1 FROM T
我瞭解到,語法應爲: SELECT (MAX(X) -1) as max_minus_one FROM T
沒有?
聚合函數(即Max()
)後面必須跟着GRUOP BY
?
MAX(x) - 1
只是表示表中x的最大值減1。
您總是可以使用括號和別名(as some_cool_name
)使事情更清楚,或更改結果中的名稱。但第一個語法是完全有效的。
你只需要GROUP BY
,如果你打算選擇什麼更多的彙總值,這樣,例如:
select
userName,
avg(age)
from
users
group by
userName
那將意味着「比列X的最大值一個都不能少」。 (a)不,那是添加一些東西。 (b)不,不是當你選擇這樣一個單一的列時。
SELECT MAX(X)-1
和
SELECT(MAX(X)-1)
是相同的。
在這種情況下,您不需要GROUP BY,因爲您沒有選擇其他非聚合字段。
A.其稅收的最大值和減去1
B.如果它只是一個agregate功能,則沒有。如果你指定另一列,那麼你必須在GROUP BY中使用它。
如果我再指定兩列,是否必須組合bu col1,col2? – 2011-06-08 15:36:05
是的,您需要按聚合函數中未使用的所有列進行分組 – CristiC 2011-06-09 07:09:29
使用別名 將返回一列和一行的表:max_minus_one和結果值 while w/o別名我會簡單地得到結果值 - 不在表中? 我是否正確? – 2011-06-08 15:26:03
集合函數(avg,max,sum等)和* alias *是兩個完全不相關的東西。 使用別名會*名*聚合函數的其他未命名的結果,這在許多情況下很有用。 但是'SELECT'語句的結果總是一個結果集,而不是一個表,也不是一個標量值(單個值),即使它只有一行一列。 – 2011-06-08 15:37:05