PostgreSQL string_to_array group by 兩個列報錯
現象是這樣的,生產環境和測試環境資料相同,執行相同的SQL,生產報錯,測試環境沒有報錯,
原因其實是表結構不用,生產環境沒有主鍵,模擬復現如下:
生產環境
create table test(id int,name varchar(100)); insert into test values (1,'a,b'); insert into test values (2,'c,d,e'); select id, (string_to_array(name, ',')) as name1 from test e group by id; oss_ods@oss_ods-> group by id; ERROR: column "e.name" must appear in the GROUP BY clause or be used in an aggregate function LINE 3: (string_to_array(name, ',')) as name1 oss_ods@oss_ods=> select oss_ods@oss_ods-> id, oss_ods@oss_ods-> (string_to_array(name, ',')) as name1 oss_ods@oss_ods-> from oss_ods@oss_ods-> test e oss_ods@oss_ods-> group by id,name; id | name1 ----+--------- 1 | {a,b} 2 | {c,d,e} (2 rows)
測試環境
drop table test; create table test(id int,name varchar(100),constraint test_pk primary key(id)); insert into test values (1,'a,b'); insert into test values (2,'c,d,e'); oss_ods@oss_ods=> select oss_ods@oss_ods-> id, oss_ods@oss_ods-> (string_to_array(name, ',')) as name1 oss_ods@oss_ods-> from oss_ods@oss_ods-> test e oss_ods@oss_ods-> group by id,name; id | name1 ----+--------- 1 | {a,b} 2 | {c,d,e} (2 rows) oss_ods@oss_ods=> oss_ods@oss_ods=> select oss_ods@oss_ods-> id, oss_ods@oss_ods-> (string_to_array(name, ',')) as name1 oss_ods@oss_ods-> from oss_ods@oss_ods-> test e oss_ods@oss_ods-> group by id; id | name1 ----+--------- 2 | {c,d,e} 1 | {a,b} (2 rows)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2919141/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL的兩個模板庫SQL
- Mysql報錯注入原理分析(count()、rand()、group by)MySql
- PostgreSQL pg_rewind 報錯分析SQL
- 【Java面試】Spring 中,有兩個 id 相同的 bean,會報錯嗎,如果會報錯,在哪個階段報錯Java面試SpringBean
- PostgreSQL DBA(186) - SQL Group BySQL
- ORA-00979: not a GROUP BY expression報錯處理Express
- Redis 佇列報錯Redis佇列
- Laravel 中 sql 查詢 使用 group by 報錯問題。LaravelSQL
- PostgreSQL DBA(169) - Develop(Distinct vs Group by)SQLdev
- 關於Mysql5.7高版本group by新特性報錯MySql
- 合併兩個有序陣列陣列
- 兩個棧實現佇列佇列
- 關於 Laravel 佇列報錯Laravel佇列
- 兩個有序陣列如何合併成一個有序陣列陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- 兩個棧實現佇列操作佇列
- 比較兩個陣列是否相等陣列
- js如何合併兩個陣列JS陣列
- 88、合併兩個有序陣列陣列
- 用兩個棧實現佇列佇列
- js合併兩個陣列物件JS陣列物件
- postgresql 比較兩個時間差大於 N個小時SQL
- postgresql 列轉行SQL
- Laravel-查詢-ONLY_FULL_GROUP_BY SQL 模式-報錯限制-解決LaravelSQL模式
- mysql報錯:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggreMySqlExpressAI
- MySQL5.7 group by新特性報錯1055的解決辦法MySql
- 力扣之兩個陣列的交集力扣陣列
- 兩個有序陣列的中位數陣列
- 找到兩個陣列中的公共元素陣列
- 88. 合併兩個有序陣列陣列
- 把兩個group by的統計資料聯合在一起
- gdb 除錯 new 一個物件主要兩個 handler除錯物件
- 【劍指offer】兩個棧實現一個佇列佇列
- 【劍指offer】兩個佇列實現一個棧佇列
- distinct 多列問題 group by 解決
- Java 列舉、JPA 和 PostgreSQL 列舉JavaSQL
- javascript將陣列的元素每兩個一組存入一個新陣列JavaScript陣列
- 每日一練(46):兩個陣列的交集陣列