sql >> Databáze >  >> RDS >> Mysql

SQL Získejte X posledních záznamů z 'custom' post_type počítajícího uživatelů individuální počet vlastních post_type

Zkuste to;)

Dotaz 1 :

select t1.*, t2.userCnt
from `posts` t1
inner join (
    select max(`ID`) as `ID`, `user`, count(1) as userCnt
    from `posts`
    where `user` != '1'
    and `post_type` = 'custom'
    group by `user`
) t2 on t1.`ID` = t2.`ID` and t1.`user` = t2.`user`
order by t1.`ID` desc limit 4

Zkontrolujte tento SqlFiddle Výsledky :

|   ID | user |                Date | title |    status | post_type | userCnt |
|------|------|---------------------|-------|-----------|-----------|---------|
| 2783 |    5 | 2016-05-24 11:24:08 | Title | published |    custom |       2 |
| 2759 |    3 | 2016-05-07 14:00:22 | Title | published |    custom |       3 |
| 2757 |   12 | 2016-05-02 12:41:00 | Title | published |    custom |       2 |
| 2683 |   15 | 2016-04-22 20:27:45 | Title | published |    custom |       2 |

Poddotaz t2 získá maximální ID v každém uživateli, když user != '1' and post_type = 'custom' a poté inner join t1 s t2 na t1.ID = t2.ID and t1.user = t2.user získá záznam, který má max ID každým user v tabulce post . Jako:"2783", "2759", "2757", "2683", "2681", "2652", "2630", "2617", "2596", "2215".

A naposledy pomocí order by a limit , samozřejmě můžete získat "2783", "2759", "2757", "2683". Doufám, že jsem vaši otázku nepopletl.



  1. Skript CREATE exportovaný aplikací MySQL Workbench má na jiném počítači chybu syntaxe

  2. Jak správně používat Oracle ORDER BY a ROWNUM?

  3. Databáze PhalconPHP se připojuje k ORM

  4. Sloučit dva sloupce ze dvou tabulek do jedné