Sql 在同一个表中运行多个计数/统计报表的最佳方法?
我正试图收集一些有关员工的统计信息。下面的查询将用于收集SELECT语句中有关特定地区特定学校的所有适用信息 我现在真正喜欢做的是能够对同一地区内的不同学校运行SELECT语句来比较一个地区内的学校,或者甚至可以相互比较地区 但是,所有数据都在一个表中。显然,我不能在查询中一个接一个地放入多个语句。我试着在他们之间加入工会,但也没用Sql 在同一个表中运行多个计数/统计报表的最佳方法?,sql,sqlite,Sql,Sqlite,我正试图收集一些有关员工的统计信息。下面的查询将用于收集SELECT语句中有关特定地区特定学校的所有适用信息 我现在真正喜欢做的是能够对同一地区内的不同学校运行SELECT语句来比较一个地区内的学校,或者甚至可以相互比较地区 但是,所有数据都在一个表中。显然,我不能在查询中一个接一个地放入多个语句。我试着在他们之间加入工会,但也没用 SELECT WorkLocationName AS District, SchoolName AS School, COUNT(FileNumber) AS Re
SELECT WorkLocationName AS District, SchoolName AS School, COUNT(FileNumber) AS Records,MIN(strftime('%Y', date('now')) - BirthYear) AS MinAge,MAX(strftime('%Y', date('now')) - BirthYear) AS MaxAge,
AVG(strftime('%Y', date('now')) - BirthYear) AS AvgAge,
(MIN(CAST(replace(replace(TotSalary,',',''),'$','') AS REAL))) As MinSalary,
(MAX(CAST(replace(replace(TotSalary,',',''),'$','') AS REAL))) As MaxSalary,
(AVG(CAST(replace(replace(TotSalary,',',''),'$','') AS REAL))) As AvgSalary
FROM DPISTAFF2015_2016
WHERE CAST(replace(replace(TotSalary,',',''),'$','') AS REAL) > 0.00
AND WorkLocationName = 'XXX Sch Dist'
AND SchoolName = 'XXX High'
我想知道在这一点上最好的做法是什么。我可以使用SELECT DISTINCT school Name来获取学校的唯一列表,并使用WHERE来获取某个地区唯一的学校,但我如何执行我拥有的SELECT语句,即每个学校或地区的计数记录、最大和最小年龄、最大和最小工资等?我想您正在寻找分组依据: 您应该修复表,以便将数字存储为数字,而不是字符串
SELECT WorkLocationName, SchoolName,
COUNT(FileNumber) AS Records,
MIN(strftime('%Y', date('now')) - BirthYear) AS MinAge,
MAX(strftime('%Y', date('now')) - BirthYear) AS MaxAge,
AVG(strftime('%Y', date('now')) - BirthYear) AS AvgAge,
MIN(CAST(replace(replace(TotSalary, ',', ''), '$', '') AS REAL)) As MinSalary,
MAX(CAST(replace(replace(TotSalary, ',', ''), '$', '') AS REAL)) As MaxSalary,
AVG(CAST(replace(replace(TotSalary, ',', ''), '$', '') AS REAL)) As AvgSalary
FROM DPISTAFF2015_2016
WHERE CAST(replace(replace(TotSalary, ',', ''), '$', '') AS REAL) > 0.00
GROUP BY WorkLocationName, SchoolName;