Zliczanie ilosci wystapien wraz z wyswietleniem najczesciej wystepujacych

0

Witam serdecznie,

Drugi dzien nad tym siedze i nie jestem w stanie nic ruszyc dalej. W zalozeniu musze zliczyc, ktory uzytkownik wypozyczyl najwiecej ksiazek, wypisac je wszystkie po ID oraz zliczyc Punkty jakie uzyskal za oddanie ich na czas. Walcze i kombinuje zarowno z GROUP BY, COUNT i sortowaniem, ale zdecydowanie cos mi umyka.
Wszystkie wypozyczenia to tzw tranzakcje czyli maja swoje Transactions_ID, przypisane jest do nich to, ktory uzytkownik (Members_ID) wypozyczyl ktora ksiazke (Book_ID).

Jestem w stanie zliczyc kto wypozyczal najczesciej dzieki ponizszej komendzie, ale pokazuje mi to liste wszystkich wraz ze zliczeniem ile razy wypozyczali:

SELECT Transactions.Member_ID, COUNT(Transactions.Member_ID) as total_borrowed, Books.BookName, SUM(Transactions.Appreciation_Points) as total_points
FROM Transactions
INNER JOIN Books ON Transactions.Book_ID = Books.Book_ID
GROUP by Transactions.Member_ID
ORDER by total_borrowed DESC

screenshot-20240114143710.png
Ilosc czasu jaki spedzilem nad roznymi kombinacjami jest nie do opisania ;(

Potrafie dojsc do tego "Na okolo", ale nie za pomoca jednego zapytania.

Dwoch uzytkownikow z najwieksza iloscia wypozyczen i to ile lacznie maja punktow.
screenshot-20240114150247.png
I to jakie ksiazki wypozyczyli:
screenshot-20240114150318.png
Czy znalazlby sie tutaj ktokolwiek kto bylby w stanie mnie naprowadzic i pomoc w jaki sposob takowe zapytanie powinno wygladac i jak powinno byc skonstruowane?
Ponizej zamieszczam tylko wycinek z calej bazy danych, gdyz tylko na niej sie opiera to zapytanie.

screenshot-20240114142012.png

Reasumujac jako ze potrafie sie bezsensownie ropisac: Potrzebuje znalezc kto wypozyczal najwiecej ksiazek, jakie to ksiazki byly (samo ID wystarczy) oraz ile punktow calkowicie zdobyl.

0

Właściwie to jesteś blisko:

select
    memeber_id
    ,sum(apprreciation_points) Total_points
    ,Group_Concat(Book_ID SEPARATOR ',')
FROM
    Transactions
GROUP BY
     member_id
ORDER BY
    count(*) desc
LIMIT 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1