【问题标题】:Best way to run multiple COUNT/statistical statements in the same table?在同一个表中运行多个 COUNT/统计语句的最佳方法?
【发布时间】:2018-04-20 02:13:50
【问题描述】:

我正在尝试收集有关员工的一些统计信息。以下查询将用于收集 SELECT 语句中有关特定地区特定学校的所有适用信息。

我现在真正喜欢做的是能够针对同一学区内的不同学校运行 SELECT 语句,以比较同一学区内的学校,甚至可以将学区彼此进行比较。

但是,所有数据都在一个表中。显然,我不能一个接一个地在我的查询中放置多个语句。我尝试在两者之间添加UNION JOIN,但这也不起作用。

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 SchoolName 获取唯一的学校列表,并使用 WHERE 仅获取某个地区的唯一学校,但是我如何执行我拥有的 SELECT 语句(即计数记录、最大和最小年龄、最大和最小每个学校或地区的工资等)?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    我想你在找group by:

    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;
    

    您应该修复您的表格,以便将数字存储为数字,而不是字符串。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-16
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多