简体   繁体   中英

Why does the order by in Big Query not working?

I am trying to use order by in big query to sort my query. What I want to do is, to order the results based on the week number of the year but it doesn't seem to work. Nor does it show any kind of syntax issue.

SELECT  *  FROM (SELECT concat(cast(EXTRACT(week FROM elt.event_datetime) as string),', ', extract(year from elt.event_datetime)) WEEK,  elt.msg_source SOURCE, (elt.source_timedelta_s_ + elt.pipeline_timedelta_s_) Latency  FROM    <table> elt join ,<table1> ai ON elt.msg_id = ai.msg_id  WHERE ai.report_type <> 'PFR' and   EXTRACT(date    FROM      elt.event_datetime) > extract(date from (date_sub(current_timestamp(), INTERVAL 30 day)))
order by WEEK desc)PIVOT ( AVG(Latency) FOR SOURCE IN ('FLYHT',      'SMTP')) t 

Basically, I want my results as they are numbered in green in the image below.

在此处输入图像描述

Can someone check what is the issue?

SELECT  *  FROM (SELECT concat(cast(EXTRACT(week FROM elt.event_datetime) as string),', ', extract(year from elt.event_datetime)) WEEK,  elt.msg_source SOURCE, (elt.source_timedelta_s_ + elt.pipeline_timedelta_s_) Latency  FROM    <table> elt join ,<table1> ai ON elt.msg_id = ai.msg_id  WHERE ai.report_type <> 'PFR' and   EXTRACT(date    FROM      elt.event_datetime) > extract(date from (date_sub(current_timestamp(), INTERVAL 30 day))))
PIVOT ( AVG(Latency) FOR SOURCE IN ('FLYHT',      'SMTP')) t order by (select RIGHT(t.WEEK,4)) desc ,(select regexp_substr(t.WEEK,'[^,]+')) desc

as suggested by @Shipra Sarkar in the comments.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM