我希望我的约会在一个月内出现2位数,但我似乎只能得到1.我已经在互联网上寻找解决方案,并发现一些似乎应该有效,但是不断获得1064错误代码。我刚刚开始学习SQL几天,所以我可能遇到了正确的答案,只是不知道在查询中的位置。
这就是我在mySQL工作台中连接数据库的方式:
要连接到MySQL服务器,请将客户端程序指向:
主持人:applepie.cx67wtelpwox.us-east-1.rds.amazonaws.com
用户名:public
port:3306
这是我的疑问:
SELECT
concat(year, '-', month) AS theDate,
dest,
sum(1) AS numFlights,
sum(cancelled) AS numCancelled,
((sum(Cancelled) / sum(1))) AS perCancelled
FROM flights WHERE year = 2013
AND dest = 'SFO'
GROUP BY month
ORDER BY perCancelled desc
这就是我得到的:
2013-7 SFO 15401 862 0.0560
2013-6 SFO 14768 503 0.0341
2013-8 SFO 15478 322 0.0208
这就是我想要的:
2013-07 SFO 15401 862 0.0560
2013-06 SFO 14768 503 0.0341
2013-08 SFO 15478 322 0.0208
答案 0 :(得分:2)
您可以使用lpad为月构建2个字符长度的字符串
SELECT
concat(year, '-', lpad(month, 2,'0')) AS theDate,
dest,
sum(1) AS numFlights,
sum(cancelled) AS numCancelled,
((sum(Cancelled) / sum(1))) AS perCancelled
FROM flights WHERE year = 2013
AND dest = 'SFO'
GROUP BY month
ORDER BY perCancelled desc