我的数据库中有300条记录,我的结构是这样的
State values
Queensland 4554
Queensland 2343
Queensland 9890
NSW 1333
我想要检索状态名为Queensland
的所有记录,并且我希望将所有记录与字段名称值相加,并将总和除以具有州名称的记录数(计数)。
任何人都可以帮我解决这个问题吗?
我需要的输出为5595.66(即(4454 + 2343 + 9890)/ 3)
答案 0 :(得分:12)
SELECT State, SUM(values) / (COUNT(*) * 1.0)
FROM tableName
WHERE State = 'Queensland'
GROUP BY State
OR
SELECT State, AVG(values * 1.0)
FROM tableName
WHERE State = 'Queensland'
GROUP BY State
作为旁注,columnName values
是一个保留关键字。根据您使用的RDBMS,通过分隔符将其转义。喜欢(反引号)MySQL,(括号)SQL Server等......
答案 1 :(得分:1)
基于
“我想检索所有记录,状态名称为”Queensland“..”
你在寻找这个(对于SQL-Server)吗? Fiddle-Demo
select [state], round(avg(value *1.0) over() ,2) avgValue
from T
where [state] ='Queensland'
--Results
state avgValue
Queensland 5595.67
Queensland 5595.67
Queensland 5595.67