对我来说很新鲜 MySQL
在这里。我有以下查询没有按我想要的方式运行: **SELECT round(sum(temp_pop.pop_total * demographics.coefficient)) as demand, pop_proj.pop_total from pop_proj, d.age, d.coefficient, d.educationalattainment from demographics d JOIN (SELECT year,sum(pop_total), age FROM pop_proj GROUP BY year, age) AS temp_pop WHERE d.age = CASE WHEN temp_pop.age < 18 then '00 to 17' WHEN temp_pop.age > 64 then '65 to 80+' ELSE '18 to 64' end;**
来源是 subquery
上面的语法 join
有一张table叫“ demographics
“只有三列显示 education level (educational attainment)
,一个年龄范围(age)-显示在case语句中,一个系数,用于查询开始时的计算。pop\u proj表提供了年份、年龄和人口总数(pop\u total列)。我正在尝试使用temp\u pop作为子查询的别名。我很肯定这个案子写得对。但是,当我运行查询时,它告诉我:您的sql语法有错误;请查看与您的mysql服务器版本对应的手册,以了解在第1行“mysql>select round(sum(temp\u pop.pop\u total*demographics.coefficient))as deman”附近使用的正确语法
我还想把结果按年份和受教育程度分组,我只是还没有在里面加上。
以前我只写了一点点不同,它告诉我,它不承认的列名pop\u总,但还没有得到一个没有错误的结果。我可能完全不知道如何写这个查询,但希望我接近。我会很感激你的帮助!提前谢谢!
1条答案
按热度按时间von4xj4u1#
很难理解你真正想要的是什么,但这可能会让你更进一步。
下面的假设是
demographics
至pop_total
仅在您案例中的人为年龄范围字符串上,该字符串可疑且可能无效。这并不试图对结果进行分组,但是一旦您可以看到满足您的需要的工作详细的输出,就应该很简单。