Department Highest Salary - Leetcode: Quien Tiene Los Mayores Numeros en Diferentes Departamentos

You might also like

Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 5

Problema 184 Department Highest Salary - LeetCode

quien tiene los mayores numeros en diferentes departamentos

SELECT d.name AS Department, e.name AS Employee, e.salary AS Salary


FROM Employee e
LEFT JOIN Department d
ON e.departmentId = d.id

WHERE (e.departmentId, e.salary) in (


SELECT e2.departmentId, MAX(e2.salary) FROM Employee e2 GROUP BY e2.departmentId)

y tb

SELECT
Department.name AS 'Department',
Employee.name AS 'Employee',
Salary
FROM
Employee
JOIN
Department ON Employee.DepartmentId = Department.Id
WHERE
(Employee.DepartmentId , Salary) IN
( SELECT
DepartmentId, MAX(Salary)
FROM
Employee
GROUP BY DepartmentId
)
;

nro 175 https://leetcode.com/problems/combine-two-tables/


combinar dos tablas con resultados NULL
SELECT firstName, lastName, City, State
FROM Person
LEFT OUTER JOIN Address
ON Person.personId = Address.personId;

182 Duplicate Emails - LeetCode


tema, saber si hay emails o logs duplicados en un tabla
select Email
from Person
group by Email
having count(Email) > 1;
185 HARD. Department top 3 salaries. My SQL
SELECT Department.Name AS "Department", e.Name AS "Employee", e.Salary
FROM (SELECT DepartmentId, Name, Salary, DENSE_RANK ()
OVER (PARTITION BY DepartmentId ORDER BY Salary DESC) AS r FROM Employee) e
JOIN Department ON e.DepartmentId = Department.Id
WHERE r <=3;

Create table Person (id integer, email text);

insert into Person (id, email) values ('1', 'a@b.com');


insert into Person (id, email) values ('2', 'c@d.com');
insert into Person (id, email) values ('3', 'a@b.com');
insert into Person (id, email) values ('4', 'a@bl.com');
insert into Person (id, email) values ('5', 'c@d.com');
insert into Person (id, email) values ('6', 'a@bl.com');
insert into Person (id, email) values ('7', 'ac@b.com');
insert into Person (id, email) values ('8', 'a@bl.com');
insert into Person (id, email) values ('9', 'a@b.com');
insert into Person (id, email) values ('10', 'a@b.com');
insert into Person (id, email) values ('11', 'c@d.com');
insert into Person (id, email) values ('12', 'cristina@saya.com');

select * from Person where id=1 or id=2 ;

select * from Person group by Email having count(Email) > 1;

/*me decuelve todos los tipos diferentes de emails que hay*/


select id, email from Person group by email;

/*quey con IN no funciona, me muestra solo un row*/


SELECT * FROM Person WHERE email IN ("a@b.com",
"a@bl.com","c@d.com") group by email;

/* debere hacer una sub query*/


SELECT email, COUNT(*)
FROM Person GROUP BY email;

SELECT *, COUNT(*)
FROM Person GROUP BY email;

/*como hacer para que ademas de los nros de repeticion me seleccione los id para identificarlos
en la tabla? primero identifico los repetitivos y despues hago query simple*/

select * from Person where email = "a@b.com";


select * from Person where email = "a@bl.com";
select * from Person where email = "ac@b.com";
select * from Person where email = "c@d.com";

/*final best query*/


SELECT * FROM Person Where email IN (select email from Person group by Email having
count(Email) > 1);

problema 181 Employees Earning More Than Their Managers - LeetCode

SELECT
a.NAME AS Employee
FROM Employee AS a JOIN Employee AS b
ON a.ManagerId = b.Id
AND a.Salary > b.Salary
;

SELECT * FROM
Employee AS a,
Employee AS b
WHERE
a.ManagerId = b.Id
AND a.Salary > b.Salary

183 mysql
# Write your MySQL query statement below
select customers.name as "Customers" from customers
where customers.id not in (select customerId from orders)

197# Write your MySQL query statement below


SELECT Weather.Id
FROM Weather
JOIN Weather AS w
ON w.RecordDate = SUBDATE(Weather.RecordDate, 1)
WHERE Weather.Temperature > w.Temperature

180

SELECT DISTINCT
l1.Num AS ConsecutiveNums
FROM
Logs l1,
Logs l2,
Logs l3
WHERE
l1.Id = l2.Id - 1
AND l2.Id = l3.Id - 1
AND l1.Num = l2.Num
AND l2.Num = l3.Num

ES IGUAL A ALIAS COMPLETO

SELECT DISTINCT
logs1.Num AS ConsecutiveNums
FROM
Logs logs1,
Logs logs2,
Logs logs3
WHERE
logs1.Id = logs2.Id - 1
AND logs2.Id = logs3.Id - 1
AND logs1.Num = logs2.Num
AND logs2.Num = logs3.Num
;

ES IGUAL A ALIAS COMPLETO CON MAYUSCULA EN PRIMERA PALABRA

SELECT DISTINCT
Logs1.Num AS ConsecutiveNums
FROM
Logs Logs1,
Logs Logs2,
Logs Logs3
WHERE
Logs1.Id = Logs2.Id - 1
AND Logs2.Id = Logs3.Id - 1
AND Logs1.Num = Logs2.Num
AND Logs2.Num = Logs3.Num
;

problema 262 HARD


SELECT Request_at AS Day,
ROUND (SUM(IF(STATUS != "completed", 1, 0))/COUNT (status), 2)
AS "Cancellation Rate"
FROM Trips
WHERE Request_at BETWEEN "2013-10-01" and "2013-10-03"
AND client_id NOT IN (select users_id FROM Users WHERE banned = "Yes")
AND driver_id NOT IN (select users_id FROM Users WHERE banned = "Yes")
GROUP BY Request_at;

problema 178 ranking scores dos soluciones


1) select score, DENSE_RANK () OVER
(ORDER BY Score DESC) AS "Rank" FROM Scores;
2) SELECT s1.Score, (SELECT COUNT (DISTINCT Score) FROM Scores s2 WHERE s2.Score
>= s1. Score) AS "Rank" FROM Score s1
ORDER BY s1.Score DESC;

(en nro 2) no me funciona ni en ms server ni en mysql en la pagina leet code=

You might also like