The easiest way to get historical trends is to create a CrUX Dashboard. I wrote up a how-to guide at
https://web.dev/chrome-ux-report-data-studio-dashboard/. No SQL needed and it gives you trends for all Core Web Vitals metrics as well as secondary metrics like FCP, TTFB, etc. It's only available at the origin-level (per-website) and not for individual pages. I also wrote a little
launcher app to jump you straight into a customized dashboard without all the setup.
If you'd prefer to query the origin-level data yourself, you could write a query similar to
this one, which I presented in the
Mastering CrUX on BigQuery talk last year. Here's a related query that processes
CrUX data by country. You could also
query the raw histogram data over time if you wanted to do any special processing like non-standard good/poor thresholds or percentiles, but this query will exceed the free 1 TB quota. The `materialized` dataset is much smaller and cheaper to query, similar to the examples in the video linked above, so that's the recommended approach if you did want to extract the data manually.
If you need URL-level data, that would only be possible using the CrUX API, however note that it doesn't support historical data. So you would need to set up a monitoring process similar to the
competitive monitoring guide I shared in the other thread,
using Apps Script to monitor the CrUX API on a daily basis. Historical data would only be available starting at the point you begin monitoring. Also note that the CrUX API does not currently support country-level data either. If URL-level country and historical data would be useful to you, let me know and I'll make sure to forward it along to the product team. (For anyone else reading, feel free to jump in and add your +1 if you'd also find it useful — that will help send a stronger signal that developers would find the features useful!)
Rick