9. Export from SQL
SELECT * FROM Orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY ''
LINES TERMINATED BY 'rn';
...
SELECT * FROM Products
INTO OUTFILE '/tmp/products.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY ''
LINES TERMINATED BY 'rn';
13. SQL
SELECT Products.ProductName AS Product,
ROUND(SUM((`Order Details`.UnitPrice*Quantity*(1-Discount)/100)*100)) AS Sales
FROM Employees
JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
JOIN `Order Details` ON Orders.OrderID = `Order Details`.OrderID
JOIN Products ON `Order Details`.ProductID = Products.ProductID
WHERE Employees.FirstName = "Steven" AND Employees.LastName = "Buchanan"
GROUP BY Products.ProductName
ORDER BY Sales DESC LIMIT 5;
17. What is the reporting
structure two levels deep?
18. SQL
SELECT CONCAT(Employees.FirstName, ' ', Employees.LastName) AS Name,
CONCAT(e2.FirstName, ' ', e2.LastName) AS Manager,
CONCAT(e3.FirstName, ' ', e3.LastName) AS `Manager's Manager`
FROM Employees
JOIN Employees AS e2 ON Employees.ReportsTo = e2.EmployeeID
JOIN Employees AS e3 ON e2.ReportsTo = e3.EmployeeID;
19. Output
+----------------+-----------------+-------------------+
° Name ° Manager ° Manager's Manager °
+----------------+-----------------+-------------------+
° Michael Suyama ° Steven Buchanan ° Andrew Fuller °
° Robert King ° Steven Buchanan ° Andrew Fuller °
° Anne Dodsworth ° Steven Buchanan ° Andrew Fuller °
+----------------+-----------------+-------------------+
20. Cypher
MATCH p = (:Employee)-[:REPORTS_TO*2]->(:Employee)
RETURN EXTRACT(n IN NODES(p) |
n.first_name + ' ' + n.last_name) AS reporting;