问题
In my table, in Google Sheets, I have a column B called "description" and I'm trying to write a SQL query to group by substrings of column B. Values in B are like "Sell 1 Jan11 300.0/307.5 Strangle" and I just want to group by 'Jan11'. I have a few rows with Jan11 then it switches to Jan18, etc.
I've tried substring, char index, mid, and nothing is working I've tried:
=QUERY('spgsh1378'!A1:AP,"select B, mid(B,7,5), sum(M) group by mid(B,7,5)"
=QUERY('spgsh1378'!A1:AP,"select B, substring(B,7,5), sum(M) group by substring(B,7,5)")
=QUERY('spgsh1378'!A1:AP,"select B, substring(B, 2, CHARINDEX(' ', B) - 2), sum(M) group by substring(B, 2, CHARINDEX(' ', B) - 2)"
I've gotten a parse error that says
"Unable to parse query string for Function QUERY parameter 2: PARSE_ERROR: Encountered " "(" "( "" at line 1, column 14. Was expecting one of: "where" ... "group" ... "pivot" ... "order" ... "skipping" ... "limit" ... "offset" ... "label" ... "format" ... "options" ... "," ... "" ... "+" ... "-" ... "/" ... "%" ... "" ... "/" ... "%" ... "+" ... "-" ..."
回答1:
your tries are not valid syntaxes. try like this:
=ARRAYFORMULA(QUERY({MID(spgsh1378!B1:B, 7, 5), spgsh1378!A1:AP},
"select Col3,Col1,sum(Col14)
where Col1 is not null
group by Col1,Col3
label sum(Col14)''", 0))
=ARRAYFORMULA(QUERY({QUERY({MID('grouping project'!A1:A, 8, 5), 'grouping project'!A1:AO},
"select Col1,sum(Col3)
where Col1 is not null
group by Col1
label Col1'month',sum(Col3)'net'",1),
IF(LEN(QUERY(QUERY({MID('grouping project'!A1:A, 8, 5), 'grouping project'!A1:AO},
"select Col1,sum(Col3)
where Col1 is not null
group by Col1
label Col1'month',sum(Col3)'net'",1),"select Col1",0)), {"";MONTH(LEFT(
QUERY(QUERY({MID('grouping project'!A1:A, 8, 5), 'grouping project'!A1:AO},
"select Col1,sum(Col3)
where Col1 is not null
group by Col1
label Col1'month',sum(Col3)'net'",1),"select Col1 offset 1", 0), 3)&1)&RIGHT(
QUERY(QUERY({MID('grouping project'!A1:A, 8, 5), 'grouping project'!A1:AO},
"select Col1,sum(Col3)
where Col1 is not null
group by Col1
label Col1'month',sum(Col3)'net'",1),"select Col1 offset 1", 0), 2)}, )*1},
"select Col1,Col2 order by Col3"))
来源:https://stackoverflow.com/questions/57364636/how-to-use-a-sql-query-in-google-sheets-to-group-by-a-substring