Regex extract in BigQuery issue - sql

I'm trying to simplify a column in BigQuery by using BigQuery extract on it but I am having a bit of an issue.
Here are two examples of the data I'm extracting from:
dc_pre=CLXk_aigyOMCFQb2dwod4dYCZw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=OVERDRFT;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.bank.co.za/onlineContent/ga_bridge.html
dc_pre=COztt4-tyOMCFcji7Qod440PCw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=DDA13;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.support.co.za/onlineContent/ga_bridge.html
I want to extract the portion between ;u1= and ;u2
Running the following legacy SQL Query
SELECT
Date(Event_Time),
Activity_ID,
REGEXP_EXTRACT(Other_Data, r'(?<=u1=)(.*\n?)(?=;u2)')
FROM
[sprt-data-transfer:dtftv2_sprt.p_activity_166401]
WHERE
Activity_ID in ('8179851')
AND Site_ID_DCM NOT IN ('2134603','2136502','2539719','2136304','2134604','2134602','2136701','2378406')
AND Event_Time BETWEEN 1563746400000000 AND 1563832799000000
I get the error...
Failed to parse regular expression "(?<=u1=)(.*\n?)(?=;u2)": invalid
perl operator: (?<
And this is where my talent runs out, is the error being caused because I'm using legacy SQL? Or is an unsupported format for REGEX?

Just tried this, and it worked, but with "Standart SQL" enabled.
select
other_data,
regexp_extract(other_data, ';u1=(.+?);u2') as some_part
from
unnest([
'dc_pre=CLXk_aigyOMCFQb2dwod4dYCZw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=OVERDRFT;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.bank.co.za/onlineContent/ga_bridge.html',
'dc_pre=COztt4-tyOMCFcji7Qod440PCw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=DDA13;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.support.co.za/onlineContent/ga_bridge.html'
]) as other_data

Not using regex but it still works...
with test as (
select 1 as id, 'dc_pre=CLXk_aigyOMCFQb2dwod4dYCZw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=OVERDRFT;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.bank.co.za/onlineContent/ga_bridge.html' as my_str UNION ALL
select 2 as id, 'dc_pre=COztt4-tyOMCFcji7Qod440PCw;gtm=2wg7f1;gcldc=;gclaw=;gac=UA-5815571-8:;auiddc=;u1=DDA13;u2=undefined;u3=undefined;u4=undefined;u5=SSA;u6=undefined;u7=na;u8=undefined;u9=undefined;u10=undefined;u11=undefined;~oref=https://www.online.support.co.za/onlineContent/ga_bridge.html'
),
temp as (
select
id,
split(my_str,';') as items
from test
),
flattened as (
select
id,
split(i,'=')[SAFE_OFFSET(0)] as left_side,
split(i,'=')[SAFE_OFFSET(1)] as right_side
from temp
left join unnest(items) i
)
select * from flattened
where left_side = 'u1'

Related

JSON and Teradata

I have the following JSON:
'{"0": false,"1": false,"barring": "BAR_ROAMING"}'
There is a propriety in teradata for Json that can be used to extract barring value F_JSON.barring --> BAR_ROAMING
But for the other 2, which are dynamic keys, how can I extract them?
You can use the JSONExtractValue function:
select JsonCol.JSONExtractValue('$.[0]') as FirstOne
, JsonCol.JSONExtractValue('$.[1]') as SecondOne
from (
select new json('{"0": false,"1": false,"barring": "BAR_ROAMING"}')
) MyJsonData(JsonCol)
https://docs.teradata.com/r/HN9cf0JB0JlWCXaQm6KDvw/aaGwlJOTKsXk4IaU7vsE6g
I ended up using
CREATE TABLE KEY_JSON AS (
SELECT DISTINCT(JSONKeys) J_KEY FROM Json_Keys
(
ON (SELECT JSON FROM JSON_TABLE) USING QUOTES('N'))
AS json_data) WITH DATA;
And performing a JOIN between my 2 tables (JSON_TABLE and KEY_JSON) ON JSON LIKE '%||J_KEY||%'
And extracting the value using JSONEXTRACT(JSON.'$."||J_KEY)

Merge 3 columns into 1 with multiple nested select

I have some data that i need to display on a path layer on deckgl inside super set, the format of the data has to be very specific or else it throws errors, the format is as such
[[],[],[]] anything else will throw errors. My data is in long and lat format which i was able to transform in to proper form, except that some lines are multistring which has this format [[[],[]],[[]]]. i am able to get it into proper format separately in 3 different columns, how do i merge these 3 into 1? tried union distinct by basing my self on this example, with an error "Expected keyword JOIN but got "," at [3:98]" how do i solve this?
SELECT * FROM Employee_Asia UNION DISTINCT SELECT * from
Employee_Europe
****
select * from(
(select replace(substring(geo,1),"[[[", "[[") as ngeo union
DISTINCT
(select replace
(substring(geo,1),"]]]", "]]")) union DISTINCT select replace
(substring(geo,1),"]],[[" ,"], [")), from(
****
select replace(substring(geo,1),"[[[", "[[") as ngeo, (select replace
(substring(geo,1),"]]]", "]]"))as xgeo, (select replace (substring(geo,1),"]],[[" ,"],
["))as zgeo,from(
select geo from (
SELECT
routeID , json_extract(st_asgeojson(st_makeline( array_agg(st_geogpoint(locs.lon,
locs.lat) order by locs.date))),'$.coordinates') as geo,
FROM
howardcounty.routebatches
cross join UNNEST(locations) as locs
where locs.date between {{start_date}} and {{end_date}}
group by routeID
order by routeID
limit 7
)where length(geo)-length(replace(geo,"]","")) > 1+4
)
here is a the result from the query without union, am also limited to select only.
[[-76.832895,39.20946],[-76.8328744528093,39.2094841310634],
[-76.8327537674778,39.2096258661087],[-76.8327516666667,39.2096283333333],
[-76.8326516666667,39.20973],[-76.8326416666667,39.2098316666667],
[-76.8327033333333,39.2099316666667],[-76.83284,39.2099916666667],
[-76.8329033333333,39.210025],[-76.8331,39.2101616666667],
[-76.8332383333333,39.2102366666667],[-76.8333933333333,39.2103233333333],
[-76.8335416666667,39.2103883333333],[-76.8336783333333,39.21044],
[-76.8338,39.2104816666667],[-76.83389,39.2105533333333],
[-76.83389633091,39.2105767090203],[-76.8339113352774,39.2106321097435],
[-76.8339116666667,39.2106333333333],[-76.8338887881129,39.2106764906686],
[-76.8338383333333,39.2107716666667],[-76.8337783333333,39.2108866666667],
[-76.8337710512136,39.2110192012812],[-76.83377,39.2110383333333],
[-76.8338232468397,39.2111109427531],[-76.83388,39.2111883333333],
[-76.8340466666667,39.2111883333333],[-76.834145,39.211135],
[-76.8341866666667,39.2110433333333],[-76.8342116666667,39.2110016666667],
[-76.83428,39.2108766666667],[-76.8343283333333,39.210795],[-76.83439,39.2107266666667],
[-76.8344492363899,39.2106641394387],[-76.83451,39.2106],[-76.834715,39.21045],
[-76.8349033333333,39.2103033333333],[-76.83497,39.21014],[-76.8349733333333,39.21006],
[-76.834985,39.21022],[-76.834865,39.2104133333333],[-76.83476,39.21059],
[-76.8347916666667,39.21075],[-76.8350466666667,39.2108316666667],
[-76.8352283333333,39.2107116666667],[-76.83532,39.2105266666667],
[-76.8354483333333,39.2103633333333],[-76.83555,39.21017],
[-76.8356666666667,39.2100466666667],[-76.8358216666667,39.21004],
[-76.8358733333333,39.2101316666667],[-76.8358316666667,39.2102883333333],
[-76.8359,39.210425],[-76.8358689842204,39.2104852071477],[-76.8358433333333,39.210535],
[-76.8356983333333,39.210565],[-76.8357383333333,39.210475],
[-76.8358689842204,39.2104852071477],[-76.8359516666667,39.2104916666667],
[-76.8360516666667,39.210455],[-76.8361533333333,39.2102916666667],
[-76.836285,39.210175],[-76.8364766666667,39.21023],[-76.8366683333333,39.21028],
[-76.8368166666667,39.210305],[-76.836955,39.2103233333333],
[-76.83699,39.2103183333333],[-76.8373016666667,39.2103166666667],
[-76.8374566666667,39.2103016666667],[-76.8376066666667,39.21029],
[-76.8377616666667,39.2103016666667],[-76.83795,39.210335],
[-76.8381333333333,39.2104033333333],[-76.83831,39.2105133333333],
[-76.8384333333333,39.2106416666667],[-76.8385183333333,39.210785],
[-76.8385616666667,39.210935],[-76.838585,39.2110366666667],
[-76.8386083333334,39.2111266666667],[-76.83865,39.211245],
[-76.8387166666667,39.211505],[-76.838855,39.2116916666667],
[-76.839035,39.2118216666667],[-76.8392,39.2119766666667],[-76.8393516666667,39.212125],
[-76.83948,39.21218],[-76.8395733333333,39.2121633333333],
[-76.8398377180994,39.212155736099],[-76.839863333316,39.2121550000005],
[-76.8398633333333,39.212155],[-76.839866248213,39.2121550000002],
[-76.8398683333333,39.212155],[-76.839885,39.212155]],
[[-76.839863333316,39.2121550000005],[-76.83984,39.212155],
[-76.8398377180994,39.212155736099],[-76.839685,39.212205],
[-76.8395033333333,39.212245],[-76.83924,39.2121616666667],
[-76.8390316666667,39.2119483333333],[-76.8388216666667,39.2117766666667],
[-76.8387066666667,39.21161],[-76.838545,39.21148],[-76.8383866666667,39.211435],
[-76.8381966666667,39.2114216666667],[-76.8380266666667,39.21142],
[-76.8378533333333,39.2114133333333],[-76.8376933333333,39.2114116666667],
[-76.837545,39.2113983333333],[-76.837365,39.2114166666667],
[-76.837145,39.2113883333333],[-76.83696,39.2113683333333],[-76.8368116666667,39.21135],
[-76.8366616666667,39.211345],[-76.8365166666667,39.21134],
[-76.836395,39.2113383333333],[-76.83635,39.21134],[-76.8361416666667,39.21133],
[-76.8359466666667,39.2112916666667],[-76.8358183333333,39.2112233333333],
[-76.8357733333333,39.2111683333333],[-76.8357366666667,39.211055],
[-76.8356816666667,39.2109716666667],[-76.83552,39.211005],
[-76.8353483333333,39.2109983333333],[-76.8351966666667,39.2109416666667],
[-76.835055,39.210885],[-76.8349033333333,39.21081],[-76.83475,39.2107766666667],
[-76.834625,39.2107333333333],[-76.83449,39.2106866666667],
[-76.8344492363899,39.2106641394387],[-76.8343633333333,39.2106166666667],
[-76.834205,39.21054],[-76.8340283333333,39.2105483333333],
[-76.833938122743,39.2106129286176],[-76.8339113352774,39.2106321097435],
[-76.8338933333333,39.210645],[-76.8338216666667,39.2107666666667],
[-76.83377,39.2108516666667],[-76.8337333333333,39.2109116666667],
[-76.8337122666612,39.2109696000596],[-76.8336933333333,39.2110216666667],
[-76.8337276727651,39.2110803760451],[-76.833745,39.21111],
[-76.8338232468397,39.2111109427531],[-76.8338833333333,39.2111116666667],
[-76.83392,39.211055],[-76.8339716666667,39.2109833333333],
[-76.8340783333333,39.2108283333333],[-76.8340766666667,39.210725],
[-76.8339833333333,39.2106566666667],[-76.8339611067922,39.2106613270793],
[-76.8338887881129,39.2106764906686],[-76.83388,39.2106783333333],
[-76.8338083333333,39.2108016666667],[-76.83373,39.2109366666667],
[-76.8337122666612,39.2109696000596],[-76.83366,39.2110666666667],
[-76.8335933333333,39.21119],[-76.8335266666667,39.211375],[-76.83353,39.2116183333333],
[-76.833635,39.2118683333333],[-76.8338283333333,39.212085],
[-76.8340583333333,39.2123116666667],[-76.8342483333333,39.21253],[-76.834345,39.21274],
[-76.8344233333333,39.212935],[-76.8343933333333,39.21316],
[-76.8345383333333,39.2133166666667],[-76.8347266666667,39.213195],
[-76.8345933333333,39.2129983333333],[-76.834455,39.2127816666667],
[-76.8343833333333,39.212615],[-76.834365,39.2125766666667],
[-76.83429,39.2124883333333],[-76.83412,39.21229],[-76.8339066666667,39.2120766666667],
[-76.8337066666667,39.21187],[-76.8336,39.2116516666667],
[-76.8335816666667,39.2114666666667],[-76.8336083333333,39.211325],
[-76.8336516666667,39.2112016666667],[-76.8337066666667,39.21111],
[-76.8337276727651,39.2110803760451],[-76.8337710512136,39.2110192012812],
[-76.8337716666667,39.2110183333333],[-76.8338516666667,39.2109],
[-76.83392,39.2108133333333],[-76.83396,39.2107166666667],
[-76.8339611067922,39.2106613270793],[-76.8339616666667,39.2106333333333],
[-76.833938122743,39.2106129286176],[-76.83389633091,39.2105767090203],
[-76.8338866666667,39.2105683333333],[-76.833715,39.2105016666667],
[-76.833595,39.2104533333333],[-76.83358,39.21045],[-76.833405,39.2103716666667],
[-76.83337,39.210365],[-76.8332116666667,39.2103166666667],[-76.8330966666667,39.21027],
[-76.83299,39.2102233333333],[-76.83286,39.2101766666667],
[-76.8327283333333,39.2101333333333],[-76.8325683333333,39.2100616666667],
[-76.832535,39.2100016666667],[-76.8325183333333,39.2098966666667],
[-76.8325066666667,39.2097333333333],[-76.8324919958592,39.209720248584],
[-76.8323833333333,39.2096233333333],[-76.8321633333333,39.2095333333333],
[-76.8320825997553,39.20948763515],[-76.8319866666667,39.2094333333333],
[-76.8319816666667,39.2092766666667],[-76.83207,39.2091466666667],[-76.832225,39.20905],
[-76.8323483333333,39.2091416666667],[-76.8322416666667,39.2093283333333],
[-76.8321066666667,39.209475],[-76.8320825997553,39.20948763515],
[-76.8319733333333,39.209545],[-76.831862668414,39.20954057341],
[-76.8318483333334,39.20954],[-76.8318415539569,39.2095171966764],
[-76.8318116666667,39.2094166666667],[-76.8318683333333,39.2093033333333],
[-76.8319233333333,39.209195],[-76.8318483333334,39.2091033333333],
[-76.8317466666667,39.2090916666667],[-76.8317216666667,39.209135],
[-76.8317866666667,39.2093583333333],[-76.83182,39.2094933333333],
[-76.8318415539569,39.2095171966764],[-76.831862668414,39.20954057341],
[-76.8319133333333,39.2095966666667],[-76.8318683333333,39.2097],
[-76.8318416666667,39.2097383333333],[-76.8318116666667,39.2098966666667],
[-76.8319366666667,39.2099516666667],[-76.832085,39.21],[-76.83213,39.21008],
[-76.8322416666667,39.2101083333333],[-76.832365,39.2100483333333],
[-76.8324283333333,39.20996],[-76.832475,39.209885],[-76.83249,39.20984],
[-76.8324919958592,39.209720248584],[-76.8324924676826,39.2096919391536],
[-76.8324933333333,39.20964],[-76.8325983333333,39.2094983333333],
[-76.8326833333333,39.2093466666667],[-76.83268,39.2091916666667],
[-76.8324833333333,39.2091266666667],[-76.8323283333333,39.2092133333333],
[-76.83233,39.209355],[-76.8323516666667,39.209475],
[-76.8323933333333,39.2096216666667],[-76.8324924676826,39.2096919391536],
[-76.832525,39.209715],[-76.8326783333333,39.2096816666667],
[-76.8327537674778,39.2096258661087],[-76.8328,39.2095916666667],
[-76.8328766666667,39.2095216666667],[-76.8329,39.20949],
[-76.8328744528093,39.2094841310634],[-76.8327766666667,39.2094616666667],
[-76.8327466666667,39.2095066666667],[-76.832685,39.209635],
[-76.83268,39.2096466666667]]] [[[-76.832895,39.20946],
[-76.8328744528093,39.2094841310634],[-76.8327537674778,39.2096258661087],
[-76.8327516666667,39.2096283333333],[-76.8326516666667,39.20973],
[-76.8326416666667,39.2098316666667],[-76.8327033333333,39.2099316666667],
[-76.83284,39.2099916666667],[-76.8329033333333,39.210025],[-76.8331,39.2101616666667],
[-76.8332383333333,39.2102366666667],[-76.8333933333333,39.2103233333333],
[-76.8335416666667,39.2103883333333],[-76.8336783333333,39.21044],
[-76.8338,39.2104816666667],[-76.83389,39.2105533333333],
[-76.83389633091,39.2105767090203],[-76.8339113352774,39.2106321097435],
[-76.8339116666667,39.2106333333333],[-76.8338887881129,39.2106764906686],
[-76.8338383333333,39.2107716666667],[-76.8337783333333,39.2108866666667],
[-76.8337710512136,39.2110192012812],[-76.83377,39.2110383333333],
[-76.8338232468397,39.2111109427531],[-76.83388,39.2111883333333],
[-76.8340466666667,39.2111883333333],[-76.834145,39.211135],
[-76.8341866666667,39.2110433333333],[-76.8342116666667,39.2110016666667],
[-76.83428,39.2108766666667],[-76.8343283333333,39.210795],[-76.83439,39.2107266666667],
[-76.8344492363899,39.2106641394387],[-76.83451,39.2106],[-76.834715,39.21045],
[-76.8349033333333,39.2103033333333],[-76.83497,39.21014],[-76.8349733333333,39.21006],
[-76.834985,39.21022],[-76.834865,39.2104133333333],[-76.83476,39.21059],
[-76.8347916666667,39.21075],[-76.8350466666667,39.2108316666667],
[-76.8352283333333,39.2107116666667],[-76.83532,39.2105266666667],
[-76.8354483333333,39.2103633333333],[-76.83555,39.21017],
[-76.8356666666667,39.2100466666667],[-76.8358216666667,39.21004],
[-76.8358733333333,39.2101316666667],[-76.8358316666667,39.2102883333333],
[-76.8359,39.210425],[-76.8358689842204,39.2104852071477],[-76.8358433333333,39.210535],
[-76.8356983333333,39.210565],[-76.8357383333333,39.210475],
[-76.8358689842204,39.2104852071477],[-76.8359516666667,39.2104916666667],
[-76.8360516666667,39.210455],[-76.8361533333333,39.2102916666667],
[-76.836285,39.210175],[-76.8364766666667,39.21023],[-76.8366683333333,39.21028],
[-76.8368166666667,39.210305],[-76.836955,39.2103233333333],
[-76.83699,39.2103183333333],[-76.8373016666667,39.2103166666667],
[-76.8374566666667,39.2103016666667],[-76.8376066666667,39.21029],
[-76.8377616666667,39.2103016666667],[-76.83795,39.210335],
[-76.8381333333333,39.2104033333333],[-76.83831,39.2105133333333],
[-76.8384333333333,39.2106416666667],[-76.8385183333333,39.210785],
[-76.8385616666667,39.210935],[-76.838585,39.2110366666667],
[-76.8386083333334,39.2111266666667],[-76.83865,39.211245],
[-76.8387166666667,39.211505],[-76.838855,39.2116916666667],
[-76.839035,39.2118216666667],[-76.8392,39.2119766666667],[-76.8393516666667,39.212125],
[-76.83948,39.21218],[-76.8395733333333,39.2121633333333],
[-76.8398377180994,39.212155736099],[-76.839863333316,39.2121550000005],
[-76.8398633333333,39.212155],[-76.839866248213,39.2121550000002],
[-76.8398683333333,39.212155],[-76.839885,39.212155]],
[[-76.839863333316,39.2121550000005],[-76.83984,39.212155],
[-76.8398377180994,39.212155736099],[-76.839685,39.212205],
[-76.8395033333333,39.212245],[-76.83924,39.2121616666667],
[-76.8390316666667,39.2119483333333],[-76.8388216666667,39.2117766666667],
[-76.8387066666667,39.21161],[-76.838545,39.21148],[-76.8383866666667,39.211435],
[-76.8381966666667,39.2114216666667],[-76.8380266666667,39.21142],
[-76.8378533333333,39.2114133333333],[-76.8376933333333,39.2114116666667],
[-76.837545,39.2113983333333],[-76.837365,39.2114166666667],
[-76.837145,39.2113883333333],[-76.83696,39.2113683333333],[-76.8368116666667,39.21135],
[-76.8366616666667,39.211345],[-76.8365166666667,39.21134],
[-76.836395,39.2113383333333],[-76.83635,39.21134],[-76.8361416666667,39.21133],
[-76.8359466666667,39.2112916666667],[-76.8358183333333,39.2112233333333],
[-76.8357733333333,39.2111683333333],[-76.8357366666667,39.211055],
[-76.8356816666667,39.2109716666667],[-76.83552,39.211005],
[-76.8353483333333,39.2109983333333],[-76.8351966666667,39.2109416666667],
[-76.835055,39.210885],[-76.8349033333333,39.21081],[-76.83475,39.2107766666667],
[-76.834625,39.2107333333333],[-76.83449,39.2106866666667],
[-76.8344492363899,39.2106641394387],[-76.8343633333333,39.2106166666667],
[-76.834205,39.21054],[-76.8340283333333,39.2105483333333],
[-76.833938122743,39.2106129286176],[-76.8339113352774,39.2106321097435],
[-76.8338933333333,39.210645],[-76.8338216666667,39.2107666666667],
[-76.83377,39.2108516666667],[-76.8337333333333,39.2109116666667],
[-76.8337122666612,39.2109696000596],[-76.8336933333333,39.2110216666667],
[-76.8337276727651,39.2110803760451],[-76.833745,39.21111],
[-76.8338232468397,39.2111109427531],[-76.8338833333333,39.2111116666667],
[-76.83392,39.211055],[-76.8339716666667,39.2109833333333],
[-76.8340783333333,39.2108283333333],[-76.8340766666667,39.210725],
[-76.8339833333333,39.2106566666667],[-76.8339611067922,39.2106613270793],
[-76.8338887881129,39.2106764906686],[-76.83388,39.2106783333333],
[-76.8338083333333,39.2108016666667],[-76.83373,39.2109366666667],
[-76.8337122666612,39.2109696000596],[-76.83366,39.2110666666667],
[-76.8335933333333,39.21119],[-76.8335266666667,39.211375],[-76.83353,39.2116183333333],
[-76.833635,39.2118683333333],[-76.8338283333333,39.212085],
[-76.8340583333333,39.2123116666667],[-76.8342483333333,39.21253],[-76.834345,39.21274],
[-76.8344233333333,39.212935],[-76.8343933333333,39.21316],
[-76.8345383333333,39.2133166666667],[-76.8347266666667,39.213195],
[-76.8345933333333,39.2129983333333],[-76.834455,39.2127816666667],
[-76.8343833333333,39.212615],[-76.834365,39.2125766666667],
[-76.83429,39.2124883333333],[-76.83412,39.21229],[-76.8339066666667,39.2120766666667],
[-76.8337066666667,39.21187],[-76.8336,39.2116516666667],
[-76.8335816666667,39.2114666666667],[-76.8336083333333,39.211325],
[-76.8336516666667,39.2112016666667],[-76.8337066666667,39.21111],
[-76.8337276727651,39.2110803760451],[-76.8337710512136,39.2110192012812],
[-76.8337716666667,39.2110183333333],[-76.8338516666667,39.2109],
[-76.83392,39.2108133333333],[-76.83396,39.2107166666667],
[-76.8339611067922,39.2106613270793],[-76.8339616666667,39.2106333333333],
[-76.833938122743,39.2106129286176],[-76.83389633091,39.2105767090203],
[-76.8338866666667,39.2105683333333],[-76.833715,39.2105016666667],
[-76.833595,39.2104533333333],[-76.83358,39.21045],[-76.833405,39.2103716666667],
[-76.83337,39.210365],[-76.8332116666667,39.2103166666667],[-76.8330966666667,39.21027],
[-76.83299,39.2102233333333],[-76.83286,39.2101766666667],
[-76.8327283333333,39.2101333333333],[-76.8325683333333,39.2100616666667],
[-76.832535,39.2100016666667],[-76.8325183333333,39.2098966666667],
[-76.8325066666667,39.2097333333333],[-76.8324919958592,39.209720248584],
[-76.8323833333333,39.2096233333333],[-76.8321633333333,39.2095333333333],
[-76.8320825997553,39.20948763515],[-76.8319866666667,39.2094333333333],
[-76.8319816666667,39.2092766666667],[-76.83207,39.2091466666667],[-76.832225,39.20905],
[-76.8323483333333,39.2091416666667],[-76.8322416666667,39.2093283333333],
[-76.8321066666667,39.209475],[-76.8320825997553,39.20948763515],
[-76.8319733333333,39.209545],[-76.831862668414,39.20954057341],
[-76.8318483333334,39.20954],[-76.8318415539569,39.2095171966764],
[-76.8318116666667,39.2094166666667],[-76.8318683333333,39.2093033333333],
[-76.8319233333333,39.209195],[-76.8318483333334,39.2091033333333],
[-76.8317466666667,39.2090916666667],[-76.8317216666667,39.209135],
[-76.8317866666667,39.2093583333333],[-76.83182,39.2094933333333],
[-76.8318415539569,39.2095171966764],[-76.831862668414,39.20954057341],
[-76.8319133333333,39.2095966666667],[-76.8318683333333,39.2097],
[-76.8318416666667,39.2097383333333],[-76.8318116666667,39.2098966666667],
[-76.8319366666667,39.2099516666667],[-76.832085,39.21],[-76.83213,39.21008],
[-76.8322416666667,39.2101083333333],[-76.832365,39.2100483333333],
[-76.8324283333333,39.20996],[-76.832475,39.209885],
[-76.83233,39.209355],[-76.8323516666667,39.209475],
[-76.8323933333333,39.2096216666667],[-76.8324924676826,39.2096919391536],
[-76.832525,39.209715],[-76.8326783333333,39.2096816666667],
[-76.8327537674778,39.2096258661087],[-76.8328,39.2095916666667],
[-76.8328766666667,39.2095216666667],[-76.8329,39.20949],
[-76.8328744528093,39.2094841310634],[-76.8327766666667,39.2094616666667],
[-76.8327466666667,39.2095066666667],[-76.832685,39.209635],
[-76.83268,39.2096466666667]] [[[-76.832895,39.20946],
[-76.8328744528093,39.2094841310634],[-76.8327537674778,39.2096258661087],
[-76.8327516666667,39.2096283333333],[-76.8326516666667,39.20973],
[-76.8326416666667,39.2098316666667],[-76.8327033333333,39.2099316666667],
[-76.83284,39.2099916666667],[-76.8329033333333,39.210025],[-76.8331,39.2101616666667],
[-76.8332383333333,39.2102366666667],[-76.8333933333333,39.2103233333333],
[-76.8335416666667,39.2103883333333],[-76.8336783333333,39.21044],
[-76.8338,39.2104816666667],[-76.83389,39.2105533333333],
[-76.83389633091,39.2105767090203],[-76.8339113352774,39.2106321097435],
[-76.8339116666667,39.2106333333333],[-76.8338887881129,39.2106764906686],
[-76.8338383333333,39.2107716666667],[-76.8337783333333,39.2108866666667],
[-76.8337710512136,39.2110192012812],[-76.83377,39.2110383333333],
[-76.8338232468397,39.2111109427531],[-76.83388,39.2111883333333],
[-76.8340466666667,39.2111883333333],[-76.834145,39.211135],
[-76.8341866666667,39.2110433333333],[-76.8342116666667,39.2110016666667],
[-76.83428,39.2108766666667],[-76.8343283333333,39.210795],[-76.83439,39.2107266666667],
[-76.8344492363899,39.2106641394387],[-76.83451,39.2106],[-76.834715,39.21045],
[-76.8349033333333,39.2103033333333],[-76.83497,39.21014],[-76.8349733333333,39.21006],
[-76.834985,39.21022],[-76.834865,39.2104133333333],[-76.83476,39.21059],
[-76.8347916666667,39.21075],[-76.8350466666667,39.2108316666667],
[-76.8352283333333,39.2107116666667],[-76.83532,39.2105266666667],
[-76.8354483333333,39.2103633333333],[-76.83555,39.21017],
[-76.8356666666667,39.2100466666667],[-76.8358216666667,39.21004],
[-76.8358733333333,39.2101316666667],[-76.8358316666667,39.2102883333333],
[-76.8359,39.210425],[-76.8358689842204,39.2104852071477],[-76.8358433333333,39.210535],
[-76.8356983333333,39.210565],[-76.8357383333333,39.210475],
[-76.8358689842204,39.2104852071477],[-76.8359516666667,39.2104916666667],
[-76.8360516666667,39.210455],[-76.8361533333333,39.2102916666667],
[-76.836285,39.210175],[-76.8364766666667,39.21023],[-76.8366683333333,39.21028],
[-76.8368166666667,39.210305],[-76.836955,39.2103233333333],
[-76.83699,39.2103183333333],[-76.8373016666667,39.2103166666667],
[-76.8374566666667,39.2103016666667],[-76.8376066666667,39.21029],
[-76.8377616666667,39.2103016666667],[-76.83795,39.210335],
[-76.8381333333333,39.2104033333333],[-76.83831,39.2105133333333],
[-76.8384333333333,39.2106416666667],[-76.8385183333333,39.210785],
[-76.8385616666667,39.210935],[-76.838585,39.2110366666667],
[-76.8386083333334,39.2111266666667],[-76.83865,39.211245],
[-76.8387166666667,39.211505],[-76.838855,39.2116916666667],
[-76.839035,39.2118216666667],[-76.8392,39.2119766666667],[-76.8393516666667,39.212125],
[-76.83948,39.21218],[-76.8395733333333,39.2121633333333],
[-76.8398377180994,39.212155736099],[-76.839863333316,39.2121550000005],
[-76.8398633333333,39.212155],[-76.839866248213,39.2121550000002],
[-76.8398683333333,39.212155],[-76.839885,39.212155],
[-76.839863333316,39.2121550000005],[-76.83984,39.212155],
[-76.8398377180994,39.212155736099],[-76.839685,39.212205],
[-76.8395033333333,39.212245],[-76.83924,39.2121616666667],
[-76.8390316666667,39.2119483333333],[-76.8388216666667,39.2117766666667],
[-76.8387066666667,39.21161],[-76.838545,39.21148],[-76.8383866666667,39.211435],
[-76.8381966666667,39.2114216666667],[-76.8380266666667,39.21142],
[-76.8378533333333,39.2114133333333],[-76.8376933333333,39.2114116666667],
[-76.837545,39.2113983333333],[-76.837365,39.2114166666667],
[-76.837145,39.2113883333333],[-76.83696,39.2113683333333],[-76.8368116666667,39.21135],
[-76.8366616666667,39.211345],[-76.8365166666667,39.21134],
[-76.836395,39.2113383333333],[-76.83635,39.21134],[-76.8361416666667,39.21133],
[-76.8359466666667,39.2112916666667],[-76.8358183333333,39.2112233333333],
[-76.8357733333333,39.2111683333333],[-76.8357366666667,39.211055],
[-76.8356816666667,39.2109716666667],[-76.83552,39.211005],
[-76.8353483333333,39.2109983333333],[-76.8351966666667,39.2109416666667],
[-76.835055,39.210885],[-76.8349033333333,39.21081],[-76.83475,39.2107766666667],
[-76.834625,39.2107333333333],[-76.83449,39.2106866666667],
[-76.8344492363899,39.2106641394387],[-76.8343633333333,39.2106166666667],
[-76.834205,39.21054],[-76.8340283333333,39.2105483333333],
[-76.833938122743,39.2106129286176],[-76.8339113352774,39.2106321097435],
[-76.8338933333333,39.210645],[-76.8338216666667,39.2107666666667],
[-76.83377,39.2108516666667],[-76.8337333333333,39.2109116666667],
[-76.8337122666612,39.2109696000596],[-76.8336933333333,39.2110216666667],
[-76.8337276727651,39.2110803760451],[-76.833745,39.21111],
[-76.8338232468397,39.2111109427531],[-76.8338833333333,39.2111116666667],
[-76.83392,39.211055],[-76.8339716666667,39.2109833333333],
[-76.8340783333333,39.2108283333333],[-76.8340766666667,39.210725],
[-76.8339833333333,39.2106566666667],[-76.8339611067922,39.2106613270793],
[-76.8338887881129,39.2106764906686],[-76.83388,39.2106783333333],
[-76.8338083333333,39.2108016666667],[-76.83373,39.2109366666667],
[-76.8337122666612,39.2109696000596],[-76.83366,39.2110666666667],
[-76.8335933333333,39.21119],[-76.8335266666667,39.211375],[-76.83353,39.2116183333333],
[-76.833635,39.2118683333333],[-76.8338283333333,39.212085],
[-76.8340583333333,39.2123116666667],[-76.8342483333333,39.21253],[-76.834345,39.21274],
[-76.8344233333333,39.212935],[-76.8343933333333,39.21316],
[-76.8345383333333,39.2133166666667],[-76.8347266666667,39.213195],
[-76.8345933333333,39.2129983333333],[-76.834455,39.2127816666667],
[-76.8343833333333,39.212615],[-76.834365,39.2125766666667],
[-76.83429,39.2124883333333],[-76.83412,39.21229],[-76.8339066666667,39.2120766666667],
[-76.8337066666667,39.21187],[-76.8336,39.2116516666667],
[-76.8335816666667,39.2114666666667],[-76.8336083333333,39.211325],
[-76.8336516666667,39.2112016666667],[-76.8337066666667,39.21111],
[-76.8337276727651,39.2110803760451],[-76.8337710512136,39.2110192012812],
[-76.8337716666667,39.2110183333333],[-76.8338516666667,39.2109],
[-76.83392,39.2108133333333],[-76.83396,39.2107166666667],
[-76.8339611067922,39.2106613270793],[-76.8339616666667,39.2106333333333],
[-76.833938122743,39.2106129286176],[-76.83389633091,39.2105767090203],
[-76.8338866666667,39.2105683333333],[-76.833715,39.2105016666667],
[-76.833595,39.2104533333333],[-76.83358,39.21045],[-76.833405,39.2103716666667],
[-76.83337,39.210365],[-76.8332116666667,39.2103166666667],[-76.8330966666667,39.21027],
[-76.83299,39.2102233333333],[-76.83286,39.2101766666667],
[-76.8327283333333,39.2101333333333],[-76.8325683333333,39.2100616666667],
[-76.832535,39.2100016666667],[-76.8325183333333,39.2098966666667],
[-76.8325066666667,39.2097333333333],[-76.8324919958592,39.209720248584],
[-76.8323833333333,39.2096233333333],[-76.8321633333333,39.2095333333333],
[-76.8320825997553,39.20948763515],[-76.8319866666667,39.2094333333333],
[-76.8319816666667,39.2092766666667],[-76.83207,39.2091466666667],[-76.832225,39.20905],
[-76.8323483333333,39.2091416666667],[-76.8322416666667,39.2093283333333],
[-76.8321066666667,39.209475],[-76.8320825997553,39.20948763515],
[-76.8319733333333,39.209545],[-76.831862668414,39.20954057341],
[-76.8318483333334,39.20954],[-76.8318415539569,39.2095171966764],
[-76.8318116666667,39.2094166666667],[-76.8318683333333,39.2093033333333],
[-76.8319233333333,39.209195],[-76.8318483333334,39.2091033333333],
[-76.8317466666667,39.2090916666667],[-76.8317216666667,39.209135],
[-76.8317866666667,39.2093583333333],[-76.83182,39.2094933333333],
[-76.8318415539569,39.2095171966764],[-76.831862668414,39.20954057341],
[-76.8319133333333,39.2095966666667],[-76.8318683333333,39.2097],
[-76.8318416666667,39.2097383333333],[-76.8318116666667,39.2098966666667],
[-76.8319366666667,39.2099516666667],[-76.832085,39.21],[-76.83213,39.21008],
[-76.8322416666667,39.2101083333333],[-76.832365,39.2100483333333],
[-76.8324283333333,39.20996],[-76.832475,39.209885],[-76.83249,39.20984],
[-76.8324919958592,39.209720248584],[-76.8324924676826,39.2096919391536],
[-76.8324933333333,39.20964],[-76.8325983333333,39.2094983333333],
[-76.8326833333333,39.2093466666667],[-76.83268,39.2091916666667],
[-76.8324833333333,39.2091266666667],[-76.8323283333333,39.2092133333333],
[-76.83233,39.209355],[-76.8323516666667,39.209475],
[-76.8323933333333,39.2096216666667],[-76.8324924676826,39.2096919391536],
[-76.832525,39.209715],[-76.8326783333333,39.2096816666667],
[-76.8327537674778,39.2096258661087],[-76.8328,39.2095916666667],
[-76.8328766666667,39.2095216666667],[-76.8329,39.20949],
[-76.8328744528093,39.2094841310634],[-76.8327766666667,39.2094616666667],
[-76.8327466666667,39.2095066666667],[-76.832685,39.209635],
[-76.83268,39.2096466666667]]]
ok found the answer, will put it here in case some one else has the same issue.
the trick is to do nested replace instead separate ones. just change this line
select * from(
(select replace(substring(geo,1),"[[[", "[[") as ngeo union
DISTINCT
(select replace
(substring(geo,1),"]]]", "]]")) union DISTINCT select replace
(substring(geo,1),"]],[[" ,"], ["))
with
select replace(replace(replace(substring(geo,1),"[[[", "[["),"]]]",
"]]"),"]],[[" ,"],[" ) as ngeo

PG::InvalidParameterValue: ERROR: cannot extract element from a scalar

I'm fetching data from the JSON column by using the following query.
SELECT id FROM ( SELECT id,JSON_ARRAY_ELEMENTS(shipment_lot::json) AS js2 FROM file_table WHERE ('shipment_lot') = ('shipment_lot') ) q WHERE js2->> 'invoice_number' LIKE ('%" abc1123"%')
My Postgresql version is 9.3
Saved data in JSON column:
[{ "id"=>2981, "lot_number"=>1, "activate"=>true, "invoice_number"=>"abc1123", "price"=>378.0}]
However, I'm getting this error:
ActiveRecord::StatementInvalid (PG::InvalidParameterValue: ERROR: cannot extract element from a scalar:
SELECT id FROM
( SELECT id,JSON_ARRAY_ELEMENTS(shipment_lot::json)
AS js2 FROM file_heaps
WHERE ('shipment_lot') = ('shipment_lot') ) q
WHERE js2->> 'invoice_number' LIKE ('%abc1123%'))
How I can solve this issue.
Your issue is that you have improper JSON stored
If you try running your example data on postgres it will not run
SELECT ('[{ "id"=>2981, "lot_number"=>1, "activate"=>true, "invoice_number"=>"abc1123", "price"=>378.0}]')::json
This is the JSON formatted correctly:
SELECT ('[{ "id":2981, "lot_number":1, "activate":true, "invoice_number":"abc1123", "price":378.0}]')::json

Big Query Regexp_Extract using Google Analytics url

How do I extract the id parameter below using Big Query Regexp_Extract some rows with page urls in them that look similar to :
url.com/id=userIDmadeUPofletterandnumbers&em=MemberType
eg url.com/id=asd1221231sf&em=studentMember
I have tried using:
a. REGEXP_EXTRACT(urlValue,"id=\w+") as Idvalue but I get the error message:
Invalid string literal: "id=\w+"
I am pretty close with this: REGEXP_EXTRACT(urlValue,"(id=.*&em)") however it shows me id=asd1221231sf&em and I want to exclude id= and &em at the end
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'url.com/id=userIDmadeUPofletterandnumbers&em=MemberType' urlValue UNION ALL
SELECT 'url.com/id=asd1221231sf&em=studentMember'
)
SELECT REGEXP_EXTRACT(urlValue, r'id=(\w+)') id, urlValue
FROM `project.dataset.table`
Row id urlValue
1 userIDmadeUPofletterandnumbers url.com/id=userIDmadeUPofletterandnumbers&em=MemberType
2 asd1221231sf url.com/id=asd1221231sf&em=studentMember

Syntax error using the WITH clause

I am trying to setup a CTE table with a series of quarterly dates.
The query returns [42601] ERROR: syntax error at or near "values" Position: 38
with q(qqyy, firstday, lastday) as (
values
('Q4_10', '09-30-2010', '12-31-2010'),
('Q1_11', '12-31-2010', '03-31-2011'),
('Q2_11', '03-31-2011', '06/30/2011'),
('Q3_11', '06/30/2011', '09/30/2011'),
('Q4_11', '09/30/2011', '12/31/2011'),
('Q1_12', '12/31/2011', '03/31/2012'),
('Q2_12', '03/31/2012', '06/30/2012'),
('Q3_12', '06/30/2012', '09/30/2012'),
('Q4_12', '09/30/2012', '12/31/2012'),
('Q1_13', '12/31/2012', '03/31/2013'),
('Q2_13', '03/31/2013', '06/30/2013'),
('Q3_13', '06/30/2013', '09/30/2013'),
('Q4_13', '09/30/2013', '12/31/2013'),
('Q1_14', '12/31/2013', '03/31/2014'),
('Q2_14', '03/31/2014', '06/30/2014'),
('Q3_14', '06/30/2014', '09/30/2014'),
('Q4_14', '09/30/2014', '12/31/2014'),
('Q1_15', '12/31/2014', '03/31/2015'),
('Q2_15', '03/31/2015', '06/30/2015'),
('Q3_15', '06/30/2015', '09/30/2015'),
('Q4_15', '09/30/2015', '12/31/2015'),
('Q1_16', '12/31/2015', '03/31/2016'),
('Q2_16', '03/31/2016', '06/30/2016'),
('Q3_16', '06/30/2016', '09/30/2016'),
('Q4_16', '09/30/2016', '12/31/2016')
)
SELECT q.qqyy, cobrand_id, sum(calc)
into temp_08.cmg_calc
from temp_08.cmg s
join q on
s.transaction_date >= q.firstday
and s.transaction_date <= q.lastday
GROUP BY q.qqyy, cobrand_id;
It appears that the above query is getting stuck on "values" due to Redshift using an older version of postgresql (http://docs.aws.amazon.com/redshift/latest/dg/c_unsupported-postgresql-features.html). But for some reason the below query that also uses "values" works fine. Any idea how I can get the above query to work using redshift?
create table temp_08.cmgquarters (
quarter_col text
, date_from date
, date_to date
);
insert into temp_08.cmgquarters
values
('Q4_10', '09-30-2010', '12-31-2010'),
('Q1_11', '12-31-2010', '03-31-2011'),
('Q2_11', '03-31-2011', '06/30/2011'),
('Q3_11', '06/30/2011', '09/30/2011'),
('Q4_11', '09/30/2011', '12/31/2011'),
('Q1_12', '12/31/2011', '03/31/2012'),
('Q2_12', '03/31/2012', '06/30/2012'),
('Q3_12', '06/30/2012', '09/30/2012'),
('Q4_12', '09/30/2012', '12/31/2012'),
('Q1_13', '12/31/2012', '03/31/2013'),
('Q2_13', '03/31/2013', '06/30/2013'),
('Q3_13', '06/30/2013', '09/30/2013'),
('Q4_13', '09/30/2013', '12/31/2013'),
('Q1_14', '12/31/2013', '03/31/2014'),
('Q2_14', '03/31/2014', '06/30/2014'),
('Q3_14', '06/30/2014', '09/30/2014'),
('Q4_14', '09/30/2014', '12/31/2014'),
('Q1_15', '12/31/2014', '03/31/2015'),
('Q2_15', '03/31/2015', '06/30/2015'),
('Q3_15', '06/30/2015', '09/30/2015'),
('Q4_15', '09/30/2015', '12/31/2015'),
('Q1_16', '12/31/2015', '03/31/2016'),
('Q2_16', '03/31/2016', '06/30/2016'),
('Q3_16', '06/30/2016', '09/30/2016'),
('Q4_16', '09/30/2016', '12/31/2016');
With Redshift not supporting the values() as a "table replacement" you need to re-write that as a union:
with q(qqyy, firstday, lastday) as (
select 'Q4_10', '09-30-2010', '12-31-2010' union all
select 'Q1_11', '12-31-2010', '03-31-2011' union all
....
)
SELECT ...;
you should however user proper DATE literals:
with q(qqyy, firstday, lastday) as (
select 'Q4_10', DATE '2010-09-30', DATE '2010-12-31' union all
select 'Q1_11', DATE '2010-12-31', DATE '2011-03-31' union all
....
)
SELECT ...;
I don't know Postgres well enough, but with SQL-Server you cannot use the VALUES like a table directly. You must use parenthesis around and provide a table alias with column names to define the derived table.
This would be something like this:
with q as (
select * from
(
values
('Q4_10', '09-30-2010', '12-31-2010'),
('Q1_11', '12-31-2010', '03-31-2011'),
('Q2_11', '03-31-2011', '06/30/2011'),
('Q3_11', '06/30/2011', '09/30/2011'),
('Q4_11', '09/30/2011', '12/31/2011'),
('Q1_12', '12/31/2011', '03/31/2012'),
('Q2_12', '03/31/2012', '06/30/2012'),
('Q3_12', '06/30/2012', '09/30/2012'),
('Q4_12', '09/30/2012', '12/31/2012'),
('Q1_13', '12/31/2012', '03/31/2013'),
('Q2_13', '03/31/2013', '06/30/2013'),
('Q3_13', '06/30/2013', '09/30/2013'),
('Q4_13', '09/30/2013', '12/31/2013'),
('Q1_14', '12/31/2013', '03/31/2014'),
('Q2_14', '03/31/2014', '06/30/2014'),
('Q3_14', '06/30/2014', '09/30/2014'),
('Q4_14', '09/30/2014', '12/31/2014'),
('Q1_15', '12/31/2014', '03/31/2015'),
('Q2_15', '03/31/2015', '06/30/2015'),
('Q3_15', '06/30/2015', '09/30/2015'),
('Q4_15', '09/30/2015', '12/31/2015'),
('Q1_16', '12/31/2015', '03/31/2016'),
('Q2_16', '03/31/2016', '06/30/2016'),
('Q3_16', '06/30/2016', '09/30/2016'),
('Q4_16', '09/30/2016', '12/31/2016')
) AS tbl(qqyy, firstday, lastday)
)
SELECT *
from q
Attention
You are in high danger!
You are using culture dependant date formats. This might work in your system, but break on another one...
Further more, your are not even consistent!
Your VALUES provide your date values as string.
In SQL-Server I'd suggest to use ISO8601, unseparated or - my favourite - ODBC. But I'm sure there are culture independent formats for literal dates in Postgres too.
And I would suggest to let the CTE come back with typed values or use a temp table with typed columns.