SELECT p.name,AVG(CASE WHEN tsl.line_discount_amount>0 THEN tsl.unit_price_before_discount END) discounted_price,AVG(CASE WHEN tsl.line_discount_amount=0 THEN tsl.unit_price_before_discount END) regular_price,COUNT(t.id) sales FROM products p JOIN transaction_sell_lines tsl ON p.id=tsl.product_id JOIN transactions t ON tsl.transaction_id=t.id WHERE t.type="sell" GROUP BY p.id,p.name HAVING discounted_price IS NOT NULL ORDER BY sales DESC;