spark sql: - 找出计划退休金超过薪水20%的人的身份证,姓名,薪水

时间:2017-07-19 05:12:08

标签: sql mysqli apache-spark-sql pyspark-sql

使用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)
]

1 个答案:

答案 0 :(得分:0)

你只需要改变公式。 20%表示除以该数字的5。 所以你的查询可能如下所示。

SELECT id, name, salary FROM `work` WHERE pension >= (salary / 5) order by Id ASC