Let's go over the solutions for our lab on reading and data. The first thing that we're going to do here, we're going to be reading in data from an SQLite database. So we're going to pull on the SQLite3 library in order to pull in from SQLite3 databases, and then we are also going to pull in Pandas as pd. We have all the solutions here. I will bring them out one by one in the cell above. The first thing I want to do is create our path. If we run this, we see that path is just going to be equal to a string. Next thing, we want to do is create a connection called con, and this is similar to what we saw in our lecture, and that's going to just be connected to the database specified in our path. The way that we do that is we use the SQLite3 library, that has a method called connection, and we connect to the path. We run this. Keyboard went out for a second, let's pull that in. Then if I look at what the column looks like, we see it's just an SQLite connection. Next thing is, we're going to set query equal to this string. Similar to before, this is just going to be equal to an actual string. We have our string and we're going to pass that string in order to get our observations, Pandas DataFrame, which is going to be this output. We just pass in this argument, the query itself, and we also pass in the connection that we established to the database. We run that just above to see them one by one, and we write observations. Let's just take the first five values, and we see that we have a Pandas DataFrame with all the allstar data that's needed from that, that was pulled from that SQL query. The next question is more of, do on your own at this point. So you want to create a variable tables, which reads in all data from the table SQLite master. It's running through all those steps without laying them out for you. So we're just going to be selecting star from the table called sqlite_master, and we're going to run that with the same connection that we established earlier. That's going to be all of our tables. Just to see what that looks like, again, we can just run it like this and we see all the different tables. We have the table type, the name of the table, root page ends, SQL query, that was used to create the actual DataFrame. Finally, this will be lesson in SQL, and regards to saying if you have everything that you need in terms of pulling in using a more advanced query in order to pull in from SQL, and then we're going to attach that using our Pandas read SQL function. So we wanted to analyze the allstar table to report the top three players in terms of their number of games played. Then just to have some type of tiebreaker, I know for those that know baseball, this probably doesn't make much intuitive sense, but still the idea is just to be working with two numerical values in order to come up with some type of ordering we use. If there are ties, we're going to choose the player with the lower starting average, lower starting position first. The query was, and we're not going to put this above here because it'll print out the bottom. We'll do select player ID, selecting player ID. We want the most games played, so some of game played. GP stands for games played, and we're going to call that sum num games played. Then we're also going to pull on the average starting position as average underscore starting underscore position, we pulled that from our allstar full table. We're going to group by player ID. We have two aggregation metrics, we're going to group those both by our player ID. Then we're going to order those by the number of games played first, descending, so from top to bottom, and then average starting position, ascending. Ideally, if you had a picture, they would be first because that'd be position one, and then so on and so forth. Again, the positions not meaning much in this context. Then we limit that to three, because we only want the top three. We have this more complex query. All we got to do, the same as any other query, is passed out into pd.read.sql. Callback pass in our best query, as well as our connection. When we run that, it's actually a little bit clearer if I write to display. You see the print above, that's when it's printed, and below and it's displayed, it's cleaner. Pandas DataFrame output, we see our three top players, and that's it for this lab. Thank you, and look forward to seeing you again in lecture.