Access Patterns we have seen. We review some of the common patterns we have used. IMPORTANT NOTE:...

Preview:

Citation preview

Access Patternswe have seen

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.

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

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

SQL query

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

Query Builder Manipulation

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

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

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

SQL

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

Query Builder Manipulation

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

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

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

SQL

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

Query Builder Manipulation

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

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

What we want: count faults

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

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

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

SQL

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

Query Builder Manipulation

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

Reminder: What we want

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

SQL

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

Query Builder Manipulation

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

Recommended