使用SQL查询,我试图提取已计划退休金超过工资20%的记录的Id,Name和Salary。
这是我的SQL查询:
sqlContext.sql("""select Id,Name,Salary from work where Pension >= Salary/20*100 order by Id asc""").show()
而且,这是我的SQL查询正在访问的表:
[
Row(Id=1, Name=u'Anu', Mail=u'Anu1@gmail.cpm', Age=23, Salary=15000, Pension=5000),
Row(Id=6, Name=u'Teja', Mail=u'Teja6@gmail.com', Age=38, Salary=20000, Pension=2000),
Row(Id=9, Name=u'Arun', Mail=u'Arun9@gmail.com', Age=27, Salary=50000, Pension=3000),
Row(Id=5, Name=u'Ramu', Mail=u'Ramu5@gmail.com', Age=35, Salary=40000, Pension=3000),
Row(Id=3, Name=u'Geetha', Mail=u'Geetha3@gmail.com', Age=31, Salary=24000, Pension=4000),
Row(Id=2, Name=u'Archana', Mail=u'Archana2@gmail.com', Age=30, Salary=20000, Pension=2000),
Row(Id=10, Name=u'Reka', Mail=u'Reka10@gmail.com', Age=30, Salary=20000, Pension=4000),
Row(Id=4, Name=u'Ramesh', Mail=u'Ramesh4@gmail.com', Age=32, Salary=30000, Pension=3000),
Row(Id=8, Name=u'Ezhil', Mail=u'Ezhil8@gmail.com', Age=28, Salary=40000, Pension=4000),
Row(Id=7, Name=u'Murali', Mail=u'Murali7@gmail.com', Age=39, Salary=20000, Pension=1000)
]
答案 0 :(得分:0)
你只需要改变公式。 20%
表示除以该数字的5。
所以你的查询可能如下所示。
SELECT id, name, salary FROM `work` WHERE pension >= (salary / 5) order by Id ASC