23
Access Patterns we have seen

Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Embed Size (px)

Citation preview

Page 1: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Access Patternswe have seen

Page 2: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

We review some of the common patterns we have used.• IMPORTANT NOTE: SQL is given for informational purpose only. We

have not covered SQL but used the Query Builder instead.

Page 3: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Table

• ID A B C• 1 a1 b1 5• 2 a1 b1 8• 3 a1 b2 7• 4 a1 b2 2• 5 a1 b2 1• 6 a2 b1 7• 7 a2 b1 8• 8 a3 b2 0

Page 4: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

What we want: summing for distinguished column of another column• A SumOfC• a1 23• a2 15• a3 0

Page 5: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

SQL query

SELECT Table1.A, Sum(Table1.C) AS SumOfCFROM Table1GROUP BY Table1.A;

Page 6: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Query Builder Manipulation

• Create Query• Choose Table1• Select column A• Select column C• Totals (GroupBy default)• Sum for column C

Page 7: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Table

• ID A B C• 1 a1 b1 5• 2 a1 b1 8• 3 a1 b2 7• 4 a1 b2 2• 5 a1 b2 1• 6 a2 b1 7• 7 a2 b1 8• 8 a3 b2 0

Page 8: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

What we want: Counting for distinguished column• B CountOfB• b1 4• b2 4

Page 9: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

SQL

SELECT Table1.B, Count(Table1.B) AS CountOfBFROM Table1GROUP BY Table1.B;

Page 10: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Query Builder Manipulation

• Create Query• Select Table1• Select column B• Select column B• Totals (GroupBy)• For second column B choose count

Page 11: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Table2 (DebateResults)

• ID winner loser forced• 1 1 2 1• 2 2 1 2• 3 1 3 3• 4 3 2 2• 5 4 1 4• 6 1 4 4• 7 1 5 0

Page 12: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

What we want: count wins for each debater• winner CountOfwinner• 1 4• 2 1• 3 1• 4 1

Page 13: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

SQL

• SELECT Table2.winner, Count(Table2.winner) AS CountOfwinner• FROM Table2• GROUP BY Table2.winner;

Page 14: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Query Builder Manipulation

• Create Query• Choose Table2• Select winner column twice• Totals (GroupBy)• For second winner column: Count

Page 15: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Table2 (DebateResults)

• ID winner loser forced• 1 1 2 1• 2 2 1 2• 3 1 3 3• 4 3 2 2• 5 4 1 4• 6 1 4 4• 7 1 5 0

Page 16: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

What we want: count faults

• Faulter CountOfFaulter• 1 2• 2 1• 5 1

Page 17: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Add calculated field for Faulters: subquery• What do we want for the subquery?

Page 18: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Create Faulter column from Loser column• Faulter forced• 2 1• 1 2• 1 4• 5 0

Page 19: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

SQL

• SELECT Table2.loser AS Faulter, Table2.forced• FROM Table2• WHERE (((Table2.loser)<>[forced]));

Page 20: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Query Builder Manipulation

• Create Query• select loser column; rename to Faulter; condition <>[forced]• select forced column (for checking result)• name subquery: Faults

Page 21: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Reminder: What we want

• Faulter CountOfFaulter• 1 2• 2 1• 5 1

Page 22: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

SQL

• SELECT Faults.Faulter, Count(Faults.Faulter) AS CountOfFaulter• FROM Faults• GROUP BY Faults.Faulter;

Page 23: Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE: SQL is given for informational purpose only. We have

Query Builder Manipulation

• Create Query• Choose subquery Faults• Select Faulter column twice• Totals (GroupBy)• select Count for second