A view is unmaterialized, that means underline query is executed each time view is accessed? Does it mean we have to pay for the underline query even it is saved in bq, independent of complexity of query?
My understanding is that yes, for an unmaterialized view, you will pay for a query when it is executed, unless you use cached results (which I believe is the default) and there is a pre-existing cache. So using a view that queries the same results should use the cache and not execute a new query.
You can test this by using the query validator in the Cloud Console before executing your query. This will show you how much data will be queried, which you can then enter into the cost calculator.
More info on controlling costs here:https://cloud.google.com/bigquery/docs/best-practices-costs
And more about materialized views here: https://cloud.google.com/bigquery/docs/materialized-views-intro
Hope this helps!