Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да покажа общия брой на последния ред по статус на файла?

Използвайте корелирана подзаявка:

SELECT COUNT(DISTINCT f_bankid) AS tcount
FROM tbl_fileStatus t
WHERE ? = (SELECT f_filestatus FROM tbl_fileStatus WHERE f_bankid = t.f_bankid ORDER BY f_id DESC LIMIT 1)

Заменете ? с f_bankid търсите.
Вижте демото .

В MySql 8.0+ можете да използвате FIRST_VALUE() функция на прозореца:

SELECT COUNT(*) AS tcount
FROM (
  SELECT DISTINCT f_bankid, 
         FIRST_VALUE(f_filestatus) OVER (PARTITION BY f_bankid ORDER BY f_id DESC) f_filestatus
  FROM tbl_fileStatus
) t
WHERE f_filestatus = ?

Вижте демото .

Ако искате резултати за всички f_filestatus в 1 ред:

SELECT
  SUM(f_filestatus = 1) AS tcount1,
  SUM(f_filestatus = 2) AS tcount2,
  SUM(f_filestatus = 3) AS tcount3
FROM (
  SELECT t.f_bankid, t.f_filestatus
  FROM tbl_fileStatus t
  WHERE t.f_id = (SELECT f_id FROM tbl_fileStatus WHERE f_bankid = t.f_bankid ORDER BY f_id DESC LIMIT 1)
) t

Вижте демото .
Резултати:

> tcount1 | tcount2 | tcount3
> ------: | ------: | ------:
>       0 |       1 |       2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Външен ключ на алтернатива на таблицата myisam?

  2. lavaral 5 ГРЕШКА{ (SQLSTATE[HY000] [1045] Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:ДА)}

  3. Как да направите SQL заявка с помощта на CASE

  4. MySql заявка:Изберете първите 3 реда от таблицата за всяка категория

  5. Чувствително на малки и големи букви търсене в Django, но игнорирано в Mysql