Database: customers_campaigns_ecommerce
Schema: Premises: premise_id (number), premises_type (text), premise_details (text) | Products: product_id (number), product_category (text), product_name (text) | Customers: customer_id (number), payment_method (text), customer_name (text), customer_phone (text), customer_email (text), customer_address (text), customer_login (text), customer_password (text) | Mailshot_Campaigns: mailshot_id (number), product_category (text), mailshot_name (text), mailshot_start_date (time), mailshot_end_date (time) | Customer_Addresses: customer_id (number), premise_id (number), date_address_from (time), address_type_code (text), date_address_to (time) | Customer_Orders: order_id (number), customer_id (number), order_status_code (text), shipping_method_code (text), order_placed_datetime (time), order_delivered_datetime (time), order_shipping_charges (text) | Mailshot_Customers: mailshot_id (number), customer_id (number), outcome_code (text), mailshot_customer_date (time) | Order_Items: item_id (number), order_item_status_code (text), order_id (number), product_id (number), item_status_code (text), item_delivered_datetime (time), item_order_quantity (text)

Question: How many premises are there?
SQL: SELECT count(*) FROM premises

Question: What are all the distinct premise types?
SQL: SELECT DISTINCT premises_type FROM premises

Question: Find the types and details for all premises and order by the premise type.
SQL: SELECT premises_type ,  premise_details FROM premises ORDER BY premises_type

Question: Show each premise type and the number of premises in that type.
SQL: SELECT premises_type ,  count(*) FROM premises GROUP BY premises_type

Question: Show all distinct product categories along with the number of mailshots in each category.
SQL: SELECT product_category ,  count(*) FROM mailshot_campaigns GROUP BY product_category

Question: Show the name and phone of the customer without any mailshot.
SQL: SELECT customer_name ,  customer_phone FROM customers WHERE customer_id NOT IN (SELECT customer_id FROM mailshot_customers)

Question: Show the name and phone for customers with a mailshot with outcome code 'No Response'.
SQL: SELECT T1.customer_name ,  T1.customer_phone FROM customers AS T1 JOIN mailshot_customers AS T2 ON T1.customer_id  =  T2.customer_id WHERE T2.outcome_code  =  'No Response'

Question: Show the outcome code of mailshots along with the number of mailshots in each outcome code.
SQL: SELECT outcome_code ,  count(*) FROM mailshot_customers GROUP BY outcome_code

Question: Show the names of customers who have at least 2 mailshots with outcome code 'Order'.
SQL: SELECT T2.customer_name FROM mailshot_customers AS T1 JOIN customers AS T2 ON T1.customer_id  =  T2.customer_id WHERE outcome_code  =  'Order' GROUP BY T1.customer_id HAVING count(*)  >=  2

Question: Show the names of customers who have the most mailshots.
SQL: SELECT T2.customer_name FROM mailshot_customers AS T1 JOIN customers AS T2 ON T1.customer_id  =  T2.customer_id GROUP BY T1.customer_id ORDER BY count(*) DESC LIMIT 1

Question: What are the name and payment method of customers who have both mailshots in 'Order' outcome and mailshots in 'No Response' outcome.
SQL: SELECT T2.customer_name ,  T2.payment_method FROM mailshot_customers AS T1 JOIN customers AS T2 ON T1.customer_id  =  T2.customer_id WHERE T1.outcome_code  =  'Order' INTERSECT SELECT T2.customer_name ,  T2.payment_method FROM mailshot_customers AS T1 JOIN customers AS T2 ON T1.customer_id  =  T2.customer_id WHERE T1.outcome_code  =  'No Response'

Question: Show the premise type and address type code for all customer addresses.
SQL: SELECT T2.premises_type ,  T1.address_type_code FROM customer_addresses AS T1 JOIN premises AS T2 ON T1.premise_id  =  T2.premise_id

Question: What are the distinct address type codes for all customer addresses?
SQL: SELECT DISTINCT address_type_code FROM customer_addresses

Question: Show the shipping charge and customer id for customer orders with order status Cancelled or Paid.
SQL: SELECT order_shipping_charges ,  customer_id FROM customer_orders WHERE order_status_code  =  'Cancelled' OR order_status_code  =  'Paid'

Question: Show the names of customers having an order with shipping method FedEx and order status Paid.
SQL: SELECT T1.customer_name FROM customers AS T1 JOIN customer_orders AS T2 ON T1.customer_id  =  T2.customer_id WHERE shipping_method_code  =  'FedEx' AND order_status_code  =  'Paid'