Departments with More than 5 Employees
Which SQL clause is used to filter groups to only show departments with more than 5 employees?
- HAVING COUNT(*) u003E 5
- WHERE COUNT(*) u003E 5
- GROUP BY COUNT(*) u003E 5
- ORDER BY COUNT u003E 5
- HAVING GROUP u003E 5
Finding Employees Earning Above Average
How would you select the names and salaries of employees who earn more than the average salary in the employees table?
- SELECT name, salary FROM employees WHERE salary u003E (SELECT AVG(salary) FROM employees);
- SELECT name, salary FROM employees WHERE salary u003E AVG(salary);
- SELECT name FROM employees HAVING salary u003E AVG(salary);
- SELECT name, salary FROM employees WHERE salary u003E (AVG(salary));
- SELECT name, salary FROM employees WHERE salary u003E ALL salaries;
Aggregate Functions for Average Salary
What is the correct SQL to find the average salary per department in an employees table?
- SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department;
- SELECT AVG(salary), department FROM employees WHERE department GROUP BY salary;
- SELECT department, salary FROM employees GROUP BY AVG(salary);
- SELECT department, AVG(salary) FROM employees;
- SELECT department AVG(salary) FROM employees GROUP TO department;
INNER JOIN for Order Details
To retrieve order details along with the customer name for all orders, which SELECT statement is correct?
- SELECT orders.order_id, orders.order_date, customers.name AS customer_name FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
- SELECT order_id, order_date, name FROM orders JOIN customers WHERE orders.customer_id = customers.customer_id;
- SELECT order_id, order_date, customer_name FROM orders LEFT JOIN customers ON orders.customer_id = customers.customer_id;
- SELECT * FROM orders CROSS JOIN customers;
- SELECT orders.id, customers.name FROM customers INNER JOIN orders ON customer_id = customers.customer_id;
IN Clause for Multiple Departments
Which query selects the names of employees working in either the HR or Finance departments using the IN clause?
- SELECT name FROM employees WHERE department IN ('HR', 'Finance');
- SELECT name FROM employees WHERE department = 'HR' OR 'Finance';
- SELECT name FROM employees WHERE department BETWEEN 'HR' AND 'Finance';
- SELECT name FROM employees IN ('HR', 'Finance');
- SELECT name FROM employees WHERE department LIKE 'HR|Finance';
Self JOIN for Employees in Same Department
To find all pairs of employees who work in the same department but are not the same individual, what is the correct SQL query?
- SELECT e1.name AS employee1, e2.name AS employee2, e1.department FROM employees e1 INNER JOIN employees e2 ON e1.department = e2.department WHERE e1.employee_id u003Cu003E e2.employee_id;
- SELECT name, department FROM employees WHERE employee_id != employee_id;
- SELECT * FROM employees WHERE department = department;
- SELECT e1.name, e2.name, department FROM employees;
- SELECT employee1, employee2, department FROM employees e1 JOIN employees e2 ON e1.employee_id u003Cu003E e2.employee_id;
Updating Salaries in a Department
How can you update all salaries by 10% for employees in the Sales department?
- UPDATE employees SET salary = salary * 1.10 WHERE department = 'Sales';
- UPDATE employees ADD salary = salary * 1.10 WHERE department = 'Sales';
- UPDATE employees SET salary = salary + 10% WHERE department = 'Sales';
- UPDATE salary FROM employees WHERE department = 'Sales' SET salary = salary * 1.10;
- UPDATE employees WHERE department = 'Sales' SET salary = salary * 1.1;
CASE Statement for Salary Status
What SQL can list all employee names along with their salary status marked as 'High' if salary is greater than 50000, else 'Low'?
- SELECT name, CASE WHEN salary u003E 50000 THEN 'High' ELSE 'Low' END AS salary_status FROM employees;
- SELECT name, IF salary u003E 50000 THEN 'High' ELSE 'Low' AS salary_status FROM employees;
- SELECT name, CASE salary u003E 50000 THEN 'High' ELSE 'Low' FROM employees;
- SELECT name WITH salary_status CASE WHEN salary u003E 50000 IS 'High' ELSE 'Low';
- SELECT name, salary u003E 50000 AS salary_status FROM employees;
LEFT JOIN for Customers With No Orders
Which SQL query lists all customers and their order totals, showing 0 for customers with no orders?
- SELECT c.name, COALESCE(SUM(o.amount), 0) AS total_amount FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.name;
- SELECT name, SUM(amount) FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
- SELECT name, COALESCE(amount, 0) FROM customers LEFT JOIN orders ON customer_id = customer_id;
- SELECT c.name, ISNULL(SUM(o.amount), 0) AS total_amount FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id;
- SELECT c.name, SUM(o.amount) FROM customers c RIGHT JOIN orders o ON o.customer_id = c.customer_id GROUP BY c.name;
Using Subquery in DELETE
How do you delete all employees who have not placed any orders?
- DELETE FROM employees WHERE employee_id NOT IN (SELECT DISTINCT employee_id FROM orders);
- DELETE employees WHERE employee_id NOT EXISTS (SELECT employee_id FROM orders);
- DELETE FROM employees IF NOT EXISTS (SELECT employee_id FROM orders);
- DELETE FROM employees WHERE NOT IN (SELECT employee_id FROM orders);
- DELETE FROM employees WHERE employee_id IN (SELECT employee_id FROM orders);