Does Group By only provide distinct rows? Can there be rows with same information? So the HAVING clause can only be used if the GROUP BY clause is being used? Do we only use aggregate functions in queries that use GROUP BY? Can you explain again what "all values must be uniform over the group" means? Can you use GROUP BY with multiple columns? Could we maybe see an example of WHERE versus HAVING? / I'm still confused on the difference between HAVING and WHERE... in the sales example I could see myself using WHERE in place of HAVING. Could you review the code from the 'subqueries that return tables' section? I think I'm confused on this because I'm not sure why we need aliases for tables / where to use them. Can you give an example of when to use or avoid joins compared to subqueries? / Can you please explain more about when it is best to use a join and subqueries? Could you expand upon how to choose between subqueries and join with some examples? Is there any real advantage of using a subquery over join or vice-versa? How does one decide where to use what in cases where both can be applicable? I would appreciate the opportunity to go over subqueries that return tables as well as joins vs. subqueries with you during class. Could you give another example for what negating/complementing a query means? How is it harder to negate using join over subqueries? Can we go over an example of how to find the complement of a data set using the idea of subqueries? Can you "stack" aggregate functions, i.e. find the minimum of a set of averages that were calculated from a table. Does using subqueries work like nested loops and cause a longer run time? Why do we let the database worry about efficiency? Is it not big of a difference or do we care about that later? "select name from person where not exists (select * from credit where credit.nm = person.nm); For the query above, why don't we have to give the subquery a temporary name or alias with AS, since it returns more than one column? Is this only required with FROM? "