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

Пребройте броя на максималните стойности за няколко дати

Тъй като не сте споменали RDBMS, които използвате, ето заявка, която ще работи на почти всички RDBMS:

SELECT  aa.User, COUNT(bb.User ) TotalCount
FROM    (SELECT DISTINCT User FROM TableName) aa
        LEFT JOIN
        (
            SELECT  a.User
            FROM    TableName a
                    INNER JOIN
                    (
                        SELECT  Date, MAX(Value) max_val
                        FROM    TableName
                        GROUP   BY Date
                    ) b ON  a.Date = b.Date AND
                            a.Value = b.max_val
        ) bb ON aa.User = bb.User 
GROUP   BY aa.User

ИЗХОД

╔══════╦════════════╗
║ USER ║ TOTALCOUNT ║
╠══════╬════════════╣
║ Bob  ║          2 ║
║ John ║          2 ║
║ Paul ║          0 ║
╚══════╩════════════╝


  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 полета в една заявка

  2. MySQL вмъкване в DATETIME:безопасно ли е да се използва ISO::8601 формат?

  3. Сортиране на поддърво в йерархична структура от данни на затваряща таблица

  4. Пълнотекстово търсене в MySQL, защо получавам неправилни аргументи за МАЧ

  5. MySQL клиент на командния ред за Windows