Well, that's a wrap for advanced BigQuery course. Let's summarize some of those key points that we walked through. You learned how and when to use advanced SQL functions like approximate count distinct as we worked our way through our large-scale GitHub example, estimating the number of users over time. We also illustrated using the WITH clause and how that can break apart complex queries into easy logical steps. We also covered how to correctly aggregate over a subset of rows in your result set with analytical window functions like rank over partition. We then took it to our BigQuery is internal architecture, we learned what sets BigQuery apart from traditional relational databases. Recall that BigQuery breaks apart data-sets into smaller chunks called shards which are then stored on persistent disk and massively processed in parallel by BigQuery's workers once a query is executed. We then explored one my favorite topics, which is working with data-sets that have structs and arrays as part of repeated fields. Structs again, that's your flexible data container, and an array of structs is how repeated fields are setup. Repeated fields offer the performance benefit of pre-joined tables. When in doubt, don't forget to UNNEST and CROSS JOIN you're structs and arrays. In our performance lab, we practice how you can optimize poorly-written SQL queries and use the query explanation map, where you get visual cues of what types of work is most in-demand by your queries. Lastly, we compared different data access scenarios and how you can safeguard your own data. Remember that, as of right now, BigQuery shares permission at that dataset level, and also inherits permissions that are set at your project level as well. Well, that's the end of the Advanced BigQuery course. Stick around for the last course in the Data to Insights Specialization, we'll recover the hat data analysts hands-on guide to machine learning and how you can start accessing things like the pre-trained ML APIs library, where you can do cool things like photo recognition and language translation as well as building your own ML models. We'll see you there.