Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy istnieje prostszy sposób na znalezienie TRYBU (S) niektórych wartości w MySQL?

Jesteś bardzo blisko ostatniego zapytania. Poniżej znajduje się jeden tryb:

SELECT value, occurs
FROM (SELECT value,count(*) as occurs
      FROM t200
      GROUP BY `value`
      LIMIT 1
     ) T1

Myślę, że twoje pytanie dotyczyło wielu trybów:

SELECT value, occurs
FROM (SELECT value, count(*) as occurs
      FROM t200
      GROUP BY `value`
     ) T1
WHERE occurs = (select max(occurs)
                from (select `value`, count(*) as occurs
                      from t200
                      group by `value`
                     ) t
               );

EDYCJA:

Jest to znacznie łatwiejsze w prawie każdej innej bazie danych. MySQL nie obsługuje with ani funkcji okien/analitycznych.

Twoje zapytanie (pokazane poniżej) nie robi tego, co Twoim zdaniem robi:

  SELECT value, occurs  
  FROM (SELECT value, count(*) as occurs
        FROM t200
        GROUP BY `value`
       ) T1
  HAVING occurs = max(occurs) ; 

Ostatnie having klauzula odnosi się do zmiennej occurs ale używa max(occurs) . Ze względu na użycie max(occurs) jest to zapytanie agregujące, które zwraca jeden wiersz, podsumowując wszystkie wiersze z podzapytania.

Zmienna occurs nie używa do grupowania. Więc jakiej wartości używa MySQL? Używa dowolnego wartość z jednego z wierszy w podzapytaniu. Ta dowolna wartość może się zgadzać lub nie. Ale wartość pochodzi tylko z jednego wiersza. Nie ma nad tym iteracji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL - Przechowywanie danych tablicowych w formacie JSON, złe praktyki?

  2. Jak wypełnić tabele stref w bazie danych mysql w ubuntu za pomocą xampp

  3. Debug PDO mySql wstaw NULL do bazy danych zamiast pustego

  4. Jak pobrać dane z bazy danych za pomocą usług internetowych (JAX - RS) w eclipse za pomocą Javy?

  5. Plik PHP nie może wprowadzić jakiejś części kodu