Skip to main content

SQL Interview Questions

Review this list of 71 SQL interview questions and answers verified by hiring managers and candidates.
  • 7 answers
    +4

    "SELECT DISTINCT title, ROUND(AVG(rating) over (partition by title),1) avg_rating, ROUND(AVG(rating) over (partition by genre),1) genre_rating FROM rating r JOIN movie m ON r.movieid=m.movieid ORDER by 1"

    Harshi B. - "SELECT DISTINCT title, ROUND(AVG(rating) over (partition by title),1) avg_rating, ROUND(AVG(rating) over (partition by genre),1) genre_rating FROM rating r JOIN movie m ON r.movieid=m.movieid ORDER by 1"See full answer

    SQL
    Coding
  • Microsoft logoAsked at Microsoft 
    2 answers

    "SQL is structured query language."

    Rafia M. - "SQL is structured query language."See full answer

    Data Engineer
    SQL
    +2 more
  • 5 answers
    +1

    "SELECT COUNT(*) unique_conversations FROM messenger_sends WHERE senderid < receiverid"

    Lucas G. - "SELECT COUNT(*) unique_conversations FROM messenger_sends WHERE senderid < receiverid"See full answer

    SQL
    Coding
  • 8 answers
    +4

    "SELECT e1.empid AS manageremployee_id, e1.empname AS managername, COUNT(e2.empid) AS numberofdirectreports FROM employees AS e1 INNER JOIN employees AS e2 ON e2.managerid = e1.empid GROUP BY e1.emp_id HAVING COUNT(e2.emp_id) >= 2 ORDER BY numberofdirectreports DESC, managername ASC `"

    Alvin P. - "SELECT e1.empid AS manageremployee_id, e1.empname AS managername, COUNT(e2.empid) AS numberofdirectreports FROM employees AS e1 INNER JOIN employees AS e2 ON e2.managerid = e1.empid GROUP BY e1.emp_id HAVING COUNT(e2.emp_id) >= 2 ORDER BY numberofdirectreports DESC, managername ASC `"See full answer

    SQL
    Coding
  • 6 answers
    +3

    "this task is misleading . i used lag(1) and lead(1) cuz it did not say "compare temperature from 2 days before and 1 day before" , it reads to me as if its asking "compare cur temperature to prev and future and see if it rose and fall""

    Erjan G. - "this task is misleading . i used lag(1) and lead(1) cuz it did not say "compare temperature from 2 days before and 1 day before" , it reads to me as if its asking "compare cur temperature to prev and future and see if it rose and fall""See full answer

    SQL
    Coding
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • 6 answers
    +3

    "select a.playername as player1, b.playername as player2, abs(a.level-b.level) as level_disparity from players a cross join players b on a.playername < b.playername where abs(a.level-b.level) <=5 order by level_disparity `"

    Gowtami K. - "select a.playername as player1, b.playername as player2, abs(a.level-b.level) as level_disparity from players a cross join players b on a.playername < b.playername where abs(a.level-b.level) <=5 order by level_disparity `"See full answer

    SQL
    Coding
  • 5 answers
    +2

    "WITH CTE AS ( SELECT *, ROWNUMBER()OVER(PARTITION BY utxoid ORDER BY transactionid) AS trxrk FROM transactions JOIN transaction_inputs USING (transaction_id) JOIN utxo USING (utxo_id) ) SELECT transaction_id AS InvalidTransactionId FROM CTE WHERE sender!=address OR trx_rk > 1 `"

    E L. - "WITH CTE AS ( SELECT *, ROWNUMBER()OVER(PARTITION BY utxoid ORDER BY transactionid) AS trxrk FROM transactions JOIN transaction_inputs USING (transaction_id) JOIN utxo USING (utxo_id) ) SELECT transaction_id AS InvalidTransactionId FROM CTE WHERE sender!=address OR trx_rk > 1 `"See full answer

    SQL
    Coding
  • 4 answers
    +1

    "-- Write your query here select count(distinct o.customer_id) as customers, d.department_name from orders o join departments d using (department_id) where extract(year from o.order_date) = 2022 and d.department_name in ('Electronics', 'Fashion') group by 2; `"

    Anonymous Roadrunner - "-- Write your query here select count(distinct o.customer_id) as customers, d.department_name from orders o join departments d using (department_id) where extract(year from o.order_date) = 2022 and d.department_name in ('Electronics', 'Fashion') group by 2; `"See full answer

    SQL
    Coding
  • 4 answers
    +1

    "with cte as (select *, row_number() over(order by score desc) as rn from players) select player_name, score, rn as ranking from cte where rn= 4 or rn =6 or rn =11 `"

    Gowtami K. - "with cte as (select *, row_number() over(order by score desc) as rn from players) select player_name, score, rn as ranking from cte where rn= 4 or rn =6 or rn =11 `"See full answer

    SQL
    Coding
  • 1 answer

    "Table user is empy....... Problem with this problem "

    Gabriella F. - "Table user is empy....... Problem with this problem "See full answer

    SQL
    Coding
Showing 61-71 of 71