Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie SQL, średnia wzniesiona i para, która wspięła się na największe szczyty

Pytanie 1:Dla całkowitej liczby wycieczek (w tym za każdym razem, gdy zdobywano szczyt)

SELECT t1.sex, AVG(t1.peak_count) AS average
FROM
    (SELECT sex, COUNT(trip_id) AS peak_count
     FROM climber c LEFT JOIN  participated p ON c.name = p.name GROUP BY c.name, c.sex) t1

Za każdym razem, gdy zdobywano UNIKALNY szczyt:

SELECT t1.sex, AVG(t1.peak_count) AS average
FROM
    (SELECT sex, COUNT(trip_id) AS peak_count
     FROM climber c LEFT JOIN  participated p ON c.name = p.name GROUP BY c.name, c.sex) t1

Pytanie 2:

SELECT P1.Name, P2.Name, COUNT(DISTINCT p1.trip_id) AS trips
FROM participated p1 INNER JOIN  participated p2 ON p1.trip_id = p2.trip_id
WHERE p1.name > p2.name -- > instead of <> gets only one of the pairs
GROUP BY P1.Name, P2.Name 
HAVING COUNT(DISTINCT p1.trip_id) > 0
ORDER BY trips DESC

Pytanie 3:

SELECT p.name, cl.when AS span_begin_date, DATEADD(day, 60, cl.when) AS span_end_date, count(c2.trip_id) AS peaks
FROM climbed cl LEFT JOIN 
climbed c2 ON c2.when BETWEEN cl.when AND DATEADD(day, 60, cl.when)
GROUP BY p.name, cl.when, DATEADD(day, 60, cl.when)
HAVING COUNT(c2.trip_id) > 20
ORDER BY peaks


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatywa dla POWROTU z INSERT...SELECT

  2. Jak zainstalować ODP.NET 2.111 i ODP.NET 4.112 na tym samym komputerze obok siebie, gdy oba wskazują ten sam serwer bazy danych

  3. Przekazanie tablicy ciągów do procedury i użycie jej w klauzuli WHERE z IN

  4. Nieprawidłowe polecenie CREATE, gdy jest używane z innym poleceniem

  5. SQL:Jak dodawać wartości według kolumn indeksu