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

Utwórz podsumowanie wyniku za pomocą jednego zapytania

To jest standardowe zapytanie przestawne:

  SELECT uc.uut_sn,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_1,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_2,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_3,
    FROM unit_characteristics uc
GROUP BY uc.uut_sn

Aby była dynamiczna, musisz użyć Dynamiczna składnia SQL MySQL o nazwie Przygotowane instrukcje . Wymaga dwóch zapytań - pierwsze otrzymuje listę characteristic_name wartości, dzięki czemu można połączyć odpowiedni ciąg w wyrażeniach CASE, tak jak w moim przykładzie jako ostateczne zapytanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Policz wiersze tabeli

  2. Jak mogę debugować, dlaczego najprostsze zapytanie MySQL zwraca false?

  3. right join równa się left join?

  4. korzystanie z GROUP BY w mysql 8

  5. Transpozycja Big Query