Doubt SQL Beginner

0

I need to know what the following queries accomplish, however I'm in doubt, as I'm starting to study SQL now. Can you help me?

"SELECT user_id, CAST(SUM(points_per_badge) AS INT) "
        + "FROM (SELECT p.user_id AS user_id, (COUNT(1) * b.quantity) AS points_per_badge "
        + "FROM CX_PUNCTUATION p JOIN CX_BADGE b ON b.id = p.badge_id WHERE p.user_id NOT IN :ignoredUsers "
        + "GROUP BY user_id, b.quantity) AS points_per_user GROUP BY user_id ORDER BY 2 DESC, 1"

and

"SELECT p.badge_id, CAST((COUNT(1) * b.quantity) AS INT) "
            + "FROM CX_PUNCTUATION p JOIN CX_BADGE b ON b.id = p.badge_id WHERE p.user_id = :userId "
            + "GROUP BY p.badge_id, b.quantity"
    
asked by anonymous 13.03.2016 / 00:40

1 answer

0

The first query is returning the ID, it is making a sum and putting the result of that sum with integer, then those quotes and the + sign is concatenating (joining) joining the result with the result of other SELECT's being performed below to bring it all on the same line, then grouping (Group By) and ordering (Order By). The second SELECT is returning the ID and the result of a multiplication of the count with the quantity and again putting that value as integer, in the end it is grouping that result by the ID and quantity. It's relatively simple to query, but I think I should start with more basic things to better understand and make progress in SQL language.

    
13.03.2016 / 01:48