you need separate recordsets for each of these criteria, you cant use 1 recordset to return each of these items. for example, to return the sum by month:
SELECT SUM(OrderAmount) as orderTotal FROM orders GROUP BY DATE_FORMAT(OrderDate,'%m-%y') ORDER BY OrderAmount
that will tell both total by month and which moth had the highest revenue
to tell the most popular product, you would use a join query of the order details and products table to using the COUNT() of the orderdetails.productID column to determine which item was ordered most:
SELECT COUNT(DetailProductID) as numberOrderd,ps4_products.ProductName FROM ps4_orderdetails
INNER JOIN ps4_products ON ps4_orderdetails.DetailProductID = ps4_products.productID
popular category would be similar, you would just use a group by clause to group the count by the category.