Mam stolik z listy książek
+---------+-------------------------+------------------+-------------+-------+----------+
| ID | Title | Writer | Publisher | year | Status |
+---------+-------------------------+------------------+-------------+-------+----------+
| S00001 | philosophy the intro | K. Bertens. | Kanisius | 2018 | BOOKED |
| S00002 | Karl Marx: Das Kapital | Karl Marx | el-Classica | 2017 | READY |
| S00003 | Karl Marx: Das Kapital | Karl Marx | el-Classica | 2017 | READY |
| S00004 | Karl Marx: Das Kapital | Johann Luwiss | Mediatama | 2015 | READY |
| S00005 | Marxis | Karl Marx | Photoem | 2019 | READY |
| S00006 | Karl Marx: Das Kapital | Karl Marx | el-Classica | 2017 | BOOKED |
| S00007 | philosophy the intro | K. Bertens. | Kanisius | 2018 | READY |
+---------+-------------------------+------------------+-------------+-------+----------+
Pierwszy i może wyświetlać liczbę z duplikatu tytułu i grupy pisarzy według TYTUŁU i autora, ale nie mogę pokazać LICZBA ze stanu, w którym jest „GOTOWY” w każdym wierszu.
Wynik powinien być taki
+-------------------------+-----------------+-------+------+
| Title | Writer | Ready | stock|
+-------------------------+-----------------+-------+------+
| Marxis | Karl Marx | 1 | 1 |
| Karl Marx: Das Kapital | Johann Luwiss | 1 | 1 |
| Karl Marx: Das Kapital | Karl Marx | 2 | 3 |
| philosophy the intro | K. Bertens. | 1 | 2 |
+-------------------------+-----------------+-------+------+
1 odpowiedź
Użyj agregacji warunkowej:
select
title,
writer,
sum(status = 'READY') ready,
count(*) stock
from books
group by title, writer
sum(status = 'READY')
to fajny skrót MySQL do liczenia, ile rekordów spełnia warunek wewnętrzny (status = 'READY'
). Opiera się na fakcie, że w kontekście liczbowym MySQL ocenia prawdziwy warunek jako 1
(a fałszywy warunek jako 0
).
Podobne pytania
Nowe pytania
mysql
MySQL to darmowy system zarządzania relacyjnymi bazami danych (RDBMS) o otwartym kodzie źródłowym, który wykorzystuje język SQL (Structured Query Language). NIE UŻYWAJ tego znacznika dla innych baz danych, takich jak SQL Server, SQLite itp. Są to różne bazy danych, które używają własnych dialektów SQL do zarządzania danymi.