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

Jak uzyskać nazwę kolumny wyniku najmniej funkcji?

Możesz użyć case oświadczenie:

CASE
WHEN LEAST(q1, q2, q3, q4) = q1 THEN 'q1'
WHEN LEAST(q1, q2, q3, q4) = q2 THEN 'q2'
WHEN LEAST(q1, q2, q3, q4) = q3 THEN 'q3'
ELSE 'q4'
END as minQuestion

(Uwaga:informacje zostaną utracone w przypadku remisów).

Jeśli interesują Cię powiązania, wystarczy podejść do tego za pomocą podzapytania i tablic:

with employee as (
  select id, q1, q2, q3, q4
  from (values
    (1, 1, 1, 3, 4),
    (2, 4, 3, 1, 1)
  ) as rows (id, q1, q2, q3, q4)
)

SELECT least(q1, q2, q3, q4),
       array(
         select q
         from (values (q1, 'q1'),
                      (q2, 'q2'),
                      (q3, 'q3'),
                      (q4, 'q4')
              ) as rows (v, q)
         where v = least(q1, q2, q3, q4)
       ) as minQuestions
FROM employee e
WHERE e.id = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obejście błędu MySQL Wykryto zakleszczenie podczas próby uzyskania blokady; spróbuj zrestartować transakcję

  2. Jaki jest najbezpieczniejszy sposób dodania html/css/js do mysql?

  3. Jak usunąć wszystkie zduplikowane rekordy w tabeli MySQL bez tabel tymczasowych?

  4. Jak przechowywać wiele elementów w kolumnie bazy danych?

  5. MySQL JEŻELI NIE NULL, to wyświetl 1, w przeciwnym razie wyświetl 0