AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-177921

vikrant rana's questions

Martin Hope
vikrant rana
Asked: 2024-08-31 20:30:36 +0800 CST

não é possível extrair dados da coluna json (posgres 9.6)

  • 5

Posso executar a consulta abaixo para obter os dados no formato fornecido como:

SELECT to_timestamp(unnest(ARRAY[[1725042600, 1725043500], [1725041700, 1725042600], [1725043500, 1725044400], [1725040800, 1725041700]]));

      to_timestamp
------------------------
 2024-08-30 18:30:00+00
 2024-08-30 18:45:00+00
 2024-08-30 18:15:00+00
 2024-08-30 18:30:00+00
 2024-08-30 18:45:00+00
 2024-08-30 19:00:00+00
 2024-08-30 18:00:00+00
 2024-08-30 18:15:00+00
(8 rows)

Estou usando o postgres versão 9.6 e abaixo é o esquema

test_database=> \d fact_completeness_count_requests
                    Table "public.fact_completeness_count_requests"
         Column          |            Type             | Collation | Nullable | Default
-------------------------+-----------------------------+-----------+----------+---------
 request_id              | character varying(64)       |           | not null |
 event_type              | character varying(255)      |           | not null |
 technology              | character varying(255)      |           |          |
 vendor                  | character varying(255)      |           |          |
 name                    | character varying(255)      |           | not null |
 dataset_metadata        | json                        |           | not null |

Estou usando a consulta abaixo para gerar a saída esperada. Conforme mostrado na saída da consulta acima. Não tenho certeza de como usar array e a função to_timestamp com a consulta abaixo. É possível arquivar com a versão postgres 9.6

select 
 request_id
,dataset_metadata->> 'intervals_epoch_seconds' as epoc_seconds
from fact_completeness_count_requests ;

 31319ad1-e848-4ec3-9c3e-967981e2ae45-0  | [[1725048000, 1725051600]]
 7a05cc38-5303-417d-88ce-fe3a604570d2    | [[1725055200, 1725056100]]
 ae6c2b09-8a95-4ac0-9846-6e76071579af    | [[1725050700, 1725051600], [1725049800, 1725050700], [1725048900, 1725049800], [1725048000, 1725048900]]
postgresql
  • 1 respostas
  • 21 Views
Martin Hope
vikrant rana
Asked: 2021-01-08 02:24:56 +0800 CST

Analisando dados JSON de uma coluna de texto no Postgres

  • 3

Eu tenho JSONem um arquivo da seguinte forma:

[xyz@innolx20122 ~]$ cat cgs_test.json
{"technology":"AAA","vendor":"XXX","name":"RBNI","temporal_unit":"hour","regional_unit":"cell","dataset_metadata":"{\"name\": \"RBNI\", \"temporal_unit\": \"hour\", \"technology\": \"LTE\", \"is_dimension\": false, \"timestamp_column_pattern\": \"yyyyMMddHHmmss\", \"data_type\": \"PM\", \"source_name\": \"RBNI\", \"intervals_epoch_seconds\": [[1609941600, 1609945200]], \"identifier_column_names\": [\"CELLID\", \"CELLNAME\", \"radio_frequency_band\", \"ENODEBID\", \"ENODEBNAME\", \"SBNID\", \"SITEID\", \"SITENAME\", \"CLUSTER_PRIORITY\", \"CP_SITE\", \"IBC\", \"NETWORK_TIER\", \"SITE_TYPE\", \"T3_FLAG\", \"CLUSTERID\", \"CLUSTERNAME\", \"REGION\", \"NETWORK\"], \"vendor\": \"ZTE\", \"timestamp_column_name\": \"COLLECTTIME\", \"regional_unit\": \"cell\"}","rk":1}
{"technology":"AAA","vendor":"XXX","name":"RRCADD","temporal_unit":"hour","regional_unit":"cell","dataset_metadata":"{\"name\": \"RRCADD\", \"temporal_unit\": \"hour\", \"technology\": \"AAA\", \"is_dimension\": false, \"timestamp_column_pattern\": \"yyyyMMddHHmmss\", \"data_type\": \"PM\", \"source_name\": \"RRCADD\", \"intervals_epoch_seconds\": [[1609941600, 1609945200]], \"identifier_column_names\": [\"CELLID\", \"CELLNAME\", \"radio_frequency_band\", \"ENODEBID\", \"ENODEBNAME\", \"SBNID\", \"SITEID\", \"SITENAME\", \"CLUSTER_PRIORITY\", \"CP_SITE\", \"IBC\", \"NETWORK_TIER\", \"SITE_TYPE\", \"T3_FLAG\", \"CLUSTERID\", \"CLUSTERNAME\", \"REGION\", \"NETWORK\"], \"vendor\": \"XXX\", \"timestamp_column_name\": \"COLLECTTIME\", \"regional_unit\": \"cell\"}","rk":1}

e eu carreguei isso para uma tabela temporária:

create table temp_json (values text);
\copy temp_json from '/home/xyz/cgs_test.json';

Agora eu quero extrair esses dados em colunas separadas como:

technology 
vendor
name
temporal_unit
regional_unit
dataset_metadata
rk

dataset_metadataé uma coluna JSON e outras colunas são strings.

postgresql
  • 2 respostas
  • 2727 Views
Martin Hope
vikrant rana
Asked: 2020-11-28 11:10:57 +0800 CST

verifique o histórico junto com as datas das consultas no Postgres

  • 1

Estou rodando PostgreSQLno meu terminal Linux e se selecionarmos pg_backend_pid();dá pidpara uma sessão específica.

Abaixo nos dá apenas a última consulta executada

select pid,
       usename as username,
       datname as database_name,
       query,
       application_name,
       backend_start,
       state,
       state_change
from pg_stat_activity
where pid = 'your-pid';

mas parece que isso \snos dá todo o histórico de consulta, mas não com datas. podemos obter datas junto com eles

e se salvarmos a saída em um nome de arquivo, onde ela será armazenada no Linuxservidor?

\s filename

Por favor, sugira se houver uma maneira mais específica, na verdade estou procurando as consultas executadas em uma data específica.

postgresql linux
  • 1 respostas
  • 15184 Views
Martin Hope
vikrant rana
Asked: 2020-11-25 12:52:35 +0800 CST

selecione entre vários valores usando ANY no PostgreSQL

  • 1

Estou executando uma consulta na tabela Postgres conforme abaixo:

      Column      |            Type             |     Modifiers
------------------+-----------------------------+--------------------
 status           | character varying(16)  

select FROM incoming_requests WHERE COALESCE(TRIM(status), '') IN ('','OK','ERROR');

Isso parece funcionar bem, mas abaixo não

select FROM incoming_requests WHERE COALESCE(TRIM(status), '') = ANY ('','OK','ERROR');

ERROR:  syntax error at or near ","
LINE 1: ...quests WHERE COALESCE(TRIM(status), '') = ANY (" ","OK","ERR...

select FROM incoming_requests WHERE COALESCE(TRIM(status), '') = ANY (" ","OK","ERROR");

Sugira também se há alguma diferença no desempenho usando ANYouIN

postgresql
  • 1 respostas
  • 39 Views
Martin Hope
vikrant rana
Asked: 2020-11-24 20:20:45 +0800 CST

consultar uma coluna do tipo JSON no Postgres

  • 0

Eu tenho uma tabela no Postgres e estou tentando consultar um JSONtipo de colunasdata_meta & source_data

request_id               | bbb1-bdfa3ae765a2
job_type                 | Incoming
data_meta                | {"data_type": "Insurance", "technology": "XYZ", "timestamp_column_name": "JOBTIME"}
source_data              | [{"vendor": "ABCD", "name": "MAPPING_FILE", "data_type": "Insurance"}]
status                   | OK


SELECT * FROM   job_request_table p, json_array_elements(p.data_meta) as element
where element->'data_type' ='Insurance';

e obtendo isso:

ERROR:  operator does not exist: json = unknown
LINE 2: where element->'data_type' ='Insurance';
                                   ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

haverá uma mudança na consulta se eu tiver que procurar vendor='ABCD'em outra JSONcoluna de tipo"source_data"

postgresql json
  • 1 respostas
  • 1425 Views
Martin Hope
vikrant rana
Asked: 2020-11-20 09:00:25 +0800 CST

filtrar um elemento de coluna json na cláusula where

  • -1

Eu tenho uma consulta abaixo no PostgreSQL:

select a.request_id,a.job_type from
(
   select request_id,
       job_id ->> 0 as job_id_1, 
       job_id ->> 1 as job_id_2
   from job_requests_table 
) tab
inner join job_requests_table a
on a.request_id = tab.request_id
where cast(tab.job_id_1 as varchar) like '%test-cluster-id-11111%';

Isso está funcionando porque test-cluster-id-11111 foi encontrado como um primeiro elemento da coluna job_id.
Pode estar em qualquer lugar e também a job_idcoluna pode ter um elemento também ou mais de um também.. pode ser quatro ou cinco.

Eu estava procurando alguma solução que eu não deveria especificar que tem que ser comparar para posição específica na cláusula where

where cast(tab.job_id_1 as varchar) like '%test-cluster-id-11111%';

e também na consulta interna, deve ser como se tiver um elemento, deve gerar uma instância dessa coluna e, se tiver 'n' elementos, deve gerar essas várias instâncias.

select request_id,
       job_id ->> 0 as job_id_1, 
       job_id ->> 1 as job_id_2
from job_requests_table 

job_idcoluna é do jsontipo e pode ter vários elementos como

["test-cluster-id-11111", "test-cluster-id-22222","test-cluster-id-33333"]

Por que isso não está funcionando?

select request_id,unnest(string_to_array(job_id, ',')) as element from job_requests_table;
postgresql
  • 1 respostas
  • 749 Views
Martin Hope
vikrant rana
Asked: 2020-11-20 04:02:59 +0800 CST

consultando um objeto JSOn em colunas separadas da tabela Postgres

  • 2

Eu tenho uma tabela com o tipo de coluna como json.

select request_id,cast(job_info as varchar)  from requests_table where cast(job_id as varchar) like '%4665-b583-3b92218db8ce%';

Aqui job_infoe job_idestão a jsoncoluna de tipo.

Isso me rende dados como este:

          request_id   |                 job_info
--------------------------------------+-------------------------------------------------------------------------------------------------------------------
 f373085d-0124a161b2d7 | ["test-cluster", "test-cluster-id-11111"]
(1 row)

Estou esperando que os dados job_info sejam recuperados como duas colunas separadas.

f373085d-0124a161b2d7,test-cluster,test-cluster-id-11111
postgresql
  • 1 respostas
  • 291 Views
Martin Hope
vikrant rana
Asked: 2019-12-13 06:32:41 +0800 CST

Criar tabela de outra tabela no Oracle Procedure

  • 0

Eu tenho um procedimento armazenado do SQL Server em que estou criando uma tabela usando outra tabela.

Select Distinct 
 col1
,col2
,col3
,col4
into table_2 
from table_1;

A instrução acima criará uma nova tabela como 'table_2' com a lista de colunas selecionada.

Tentei converter a consulta acima na sintaxe do Oracle:

Create table table_2 as 
select
 col1
,col2
,col3
,col4
from table_1;

Isso está funcionando bem como esperado quando estou executando no editor. No entanto, a mesma instrução está me dando erros quando estou tentando usar isso no Oracle Procedure.

Já passei por alguns links ou algo assim, que diz que precisa criar algumas variáveis ​​temporárias ou armazenamento ou loop para realizar a mesma tarefa.

Estou ficando muito confuso agora e não sei como converter essa instrução simples em sintaxe válida do Oracle.

oracle
  • 1 respostas
  • 5394 Views
Martin Hope
vikrant rana
Asked: 2019-10-04 00:19:19 +0800 CST

selecionar valores no intervalo de uma tabela com base em uma condição

  • -1

Tenho uma tabela no sql server e gostaria de selecionar linhas com base em alguma condição específica.

id name age
1  ABC  33
2  XYZ  45
3  KLM  32
4  HIJ  35
5  PQR  44
6  DEF  55
7  KKK  66
8  XXX  77

Eu preciso pesquisar o nome da segunda coluna como 'KLM'e se achar que deve retornar o próximo intervalo consecutivo de linhas como:

    4  HIJ  35
    5  PQR  44
    6  DEF  55
sql-server sql-server-2012
  • 4 respostas
  • 82 Views
Martin Hope
vikrant rana
Asked: 2019-10-01 23:46:37 +0800 CST

Solte várias colunas ao mesmo tempo de uma tabela do SQL Server

  • 1

Atualmente, estou procurando uma maneira de excluir várias colunas ao mesmo tempo de uma determinada tabela no servidor sql.

Uma maneira de fazer isso é usar a instrução ALTER conforme mostrado abaixo:

Alter Table [USER_DB].[dbo].my_Table
DROP COLUMN "ID", 
            "Name", 
            "Relationship"  ;

Estou usando a instrução acima em algum procedimento armazenado para descartar as colunas e está funcionando bem. No entanto, isso cria um problema quando eu reexecuto essa instrução e as colunas já são descartadas.

Encontrei uma boa solução no SO que não falha mesmo quando as colunas são descartadas.

IF EXISTS(SELECT 1
          FROM INFORMATION_SCHEMA.COLUMNS
          WHERE TABLE_NAME='my_Table'
          and column_name= 'ID'
          and Table_SChema='DBO')
  BEGIN
    ALTER TABLE my_Table
    DROP COLUMN 
     ID
  END

Eu tentei a instrução acima para descartar várias colunas ao mesmo tempo, mas não está funcionando.

Eu estava procurando algo assim.

IF EXISTS(SELECT 1
          FROM INFORMATION_SCHEMA.COLUMNS
          WHERE TABLE_NAME='my_Table'
          and column_name= 'ID'
          and column_name= 'Name'
          and column_name ='Relationship'
          and Table_SChema='DBO')
  BEGIN
    ALTER TABLE my_Table
    DROP COLUMN 
     ID
    ,Name
    ,Relationship
  END
sql-server stored-procedures
  • 1 respostas
  • 761 Views
Martin Hope
vikrant rana
Asked: 2019-07-23 01:12:05 +0800 CST

ajustando a operação de exclusão enorme na tabela do sql server

  • 4

Estou executando uma operação de exclusão em uma tabela muito grande do servidor sql com base na consulta, conforme discutido abaixo.

delete db.st_table_1
where service_date between(select min(service_date) from stg_table)
                   and (select max(service_date) from stg_table);

stg_table e stg_table_1 não possuem índices em service_date.

ambas as tabelas são carregadas com milhões de linhas de dados e a operação de exclusão está demorando muito. Solicitando sua sugestão para melhorar o desempenho desta consulta.

Eu me referi à estratégia descrita na pergunta abaixo, mas não consegui entender como implementá-la.

Como excluir grande quantidade de dados no servidor sql sem perda de dados?

solicitando sua gentil sugestão sobre isso.

Atualizar:

select * into db.temp_stg_table_1
from db.stg_table_1
where service_date not between( select min(service_date) from db.stg_table)
                             and (select max(service_date) from db.stg_table);

exec sp_rename 'stg_table_1' , 'stg_table_1_old'

exec sp_rename 'temp_stg_table_1' , 'test_table_1'

drop table stg_table_1_old

que tal se ir com a lógica acima para excluir os milhões de registros. quaisquer vantagens e desvantagens com isso.

sql-server delete
  • 3 respostas
  • 2842 Views
Martin Hope
vikrant rana
Asked: 2019-07-11 23:29:21 +0800 CST

melhorando o desempenho de junção na tabela do sql server

  • 0

Eu tenho uma tabela no servidor sql digamos TableA. e uma outra tabela como TableB. Ambas as tabelas estão muito carregadas.

A Tabela A é carregada com os registros 35883788. Ela contém muitas duplicatas na coluna program_id.

A Tabela B é carregada com registros 27343331. Ela também contém uma duplicata na coluna em program_id. Por algum motivo comercial, precisamos manter registros duplicados em program_id em ambas as tabelas.

Agora estou realizando uma junção à esquerda em determinada tabela como:

select 
a.*,b.date_of_birth,
datediff(year,b.date_of_birth,a.from_date)-
(case when dateadd(year,
           datediff(year,b.date_of_birth,a.from_date),b.date_of_birth)
           > a.from_date then 1 else 0
                   end) as age_final,
case when datediff(yyyy,b.date_of_birth,a.from_date) is null then ''
     when datediff(yyyy,b.date_of_birth,a.from_date) <=1 then 'less than 1 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=17 then 'then 1 - 17 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=29 then 'then 19 - 29 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=39 then 'then 30 - 39 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=49 then 'then 40 - 49 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=59 then 'then 50 - 59 year'
     when datediff(yyyy,b.date_of_birth,a.from_date) <=64 then 'then 60 - 64 year'
else 'More than 64 years' end as Age_band
from TableA a 
left join ( select program_id,date_of_birth,max(process_date) 
            from TableB 
            group by program_id,date_of_birth) b
    on a.program_id=b.program_id;

minha consulta interna está me dando um conjunto exclusivo de program_id usando group by statement.

Nenhuma dessas tabelas está indexada. Se eu tiver que criar um índice em ambas as tabelas, que tipo de índice eu preciso ter no program_id para ambas as tabelas.

o que todas as outras coisas eu posso cuidar para melhorar o desempenho da junção.

preciso de sugestão para otimizar a junção e os índices.

sql-server ssis-2016
  • 1 respostas
  • 197 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve