Dear All,
Why Oracle and MySQL giving different results
--- Oracle
SELECT
COALESCE(UPPER(CAST(EMPLOYEE_ID AS VARCHAR(200))), '~') AS "EMPLOYEE_ID ",
COALESCE(UPPER(CAST(FIRST_NAME AS VARCHAR(200))), '~') AS "FIRST_NAME ",
COALESCE(UPPER(CAST(DEPARTMENT_ID AS VARCHAR(200))), '~') AS "JOB_ID ",
SUM(SALARY) AS "SALARY "
FROM
EMPLOYEES
WHERE
EMPLOYEE_ID = 178
GROUP BY
ROLLUP(COALESCE(UPPER(CAST(EMPLOYEE_ID AS VARCHAR(200))), '~'),
COALESCE(UPPER(CAST(FIRST_NAME AS VARCHAR(200))), '~'),
COALESCE(UPPER(CAST(DEPARTMENT_ID AS VARCHAR(200))), '~'))
ORDER BY
"EMPLOYEE_ID ",
"FIRST_NAME ",
"JOB_ID ",
"SALARY "
Output:
| 178 | KIMBERELY | ~ | 7000 |
| 178 | KIMBERELY | | 7000 |
| 178 | | | 7000 |
| | | 7000 |
-----------------------------
--MySQL
SELECT
COALESCE(UPPER(EMPLOYEE_ID), '~') AS "EMPLOYEE_ID ",
COALESCE(UPPER(FIRST_NAME), '~') AS "FIRST_NAME ",
COALESCE(UPPER(DEPARTMENT_ID), '~') AS "DEPARTMENT_ID ",
SUM(SALARY) AS "SALARY "
FROM employees WHERE EMPLOYEE_ID = 178
GROUP BY
COALESCE(UPPER(EMPLOYEE_ID), '~'),
COALESCE(UPPER(FIRST_NAME), '~'),
COALESCE(UPPER(DEPARTMENT_ID), '~')
WITH ROLLUP
Result
| 178 | KIMBERELY | ~ | 7000 |
| 178 | KIMBERELY | | 7000 |
| 178 | KIMBERELY | | 7000 |
| KIMBERELY | | 7000 |
Why FIRST_NAME is repeating?