Articles of sql

Escopo de Múltiplos Modelos com Múltiplos Onde Declarações

Eu tenho um aplicativo que lida com sites. Existe um modelo chamado “sites”, que possui muitas páginas. O modelo de sites tem uma coluna chamada homepage. A lista de páginas de cada site contém a página inicial e as páginas adicionais (sobre, preço, o que for). Nesta postagem: Criando escopos com base em vários modelos […]

Converter consulta SQL em consulta de registro ativo no Rails 4

SELECT * FROM ( SELECT DISTINCT ON (sec) id, sec FROM tasks ORDER BY sec, id DESC ) sub ORDER BY id DESC LIMIT 4; Eu estou querendo saber se a consulta SQL acima pode ser convertida em uma consulta de registro ativo. Por enquanto estou usando o find_by_sql seguinte forma: Task.find_by_sql(“SELECT * FROM ( […]

Faça um pedido com o activerecord para obter apenas os usuários dos grupos e não dos outros

Estou tentando obter usuários de alguns grupos (com determinados IDs) e excluir os usuários de outros grupos. Eu tentei algo como: User.joins(:groups).where(groups: {id: [“8939″,”8950”]}).where.not(groups: {id: 8942}).map(&:id) User Load (0.9ms) SELECT “users”.* FROM “users” INNER JOIN “groups_users” ON “groups_users”.”user_id” = “users”.”id” INNER JOIN “groups” ON “groups”.”id” = “groups_users”.”group_id” WHERE “groups”.”id” IN (8939, 8950) AND “groups”.”id” != […]

Rails ActiveRecord Eager Load demora muito tempo

Eu estou usando o carregamento ansioso para juntar duas das minhas tabelas Model1.eager_load(:model2) A tabela Model1 tem cerca de 800 linhas e possui muitas referências a outras tabelas. Sempre que essa linha é chamada, leva cerca de 3 minutos para carregar a exibição que mostra as informações. Em seguida, tentei fazer uma conexão direta com […]

não coincidindo quando dentro da instrução de caso do mysql não está aparecendo no resultado

Eu tenho uma declaração mysql como abaixo SELECT CASE WHEN HOUR(created_at) BETWEEN 0 AND 11 THEN ‘Morning’ WHEN HOUR(created_at) BETWEEN 12 AND 15 THEN ‘Afternoon’ WHEN HOUR(created_at) BETWEEN 16 AND 18 THEN ‘Evening’ WHEN HOUR(created_at) BETWEEN 19 AND 24 THEN ‘Night’ END AS session, SUM(total) AS `total` FROM `orders` WHERE (purchase_date between ‘2014-05-01’ and ‘2014-05-30’) […]

Execução do pacote Rake DB Migrate

Eu tenho recebido este erro quando executo bundle exec rake db: migrar para um site básico de RoR. Eu sou um iniciante e encontrei erros semelhantes neste site e Treehouse, mas nada com a segunda metade específica deste erro (do NOT NULLC em diante). Eu ainda não tenho certeza de como resolver isso – alguém […]

rails e integridade referencial

Gostaria de saber se é possível escrever uma migration em vez da seguinte instrução SQL bruta: execute <<-SQL ALTER TABLE records ADD CONSTRAINT fk_records_domains FOREIGN KEY (domain_id) REFERENCES domains(id) ON DELETE CASCADE SQL Eu gostaria de evitar o uso de sql porque eu estou tendo problemas ao tentar reverter essa migration: execute <<-SQL ALTER TABLE […]

ActiveRecord não retornando ao pesquisar nos filhos dos pais

Adoraria saber o simples erro que estou fazendo desta vez … current_user = User.find(60) Plan.joins(:user).where(“users.id” => current_user.id).where(“plans.status” => nil) # Plan Load (8.6ms) SELECT “plans”.* FROM “plans” INNER JOIN “users” ON “users”.”id” = “plans”.”user_id” WHERE “users”.”id” = 60 AND “plans”.”status” IS NULL # => #<ActiveRecord::Relation [# # Não entendendo porque a segunda afirmação não está […]

postgres – coluna parcial na coluna SELECT / GROUP BY – deve aparecer na cláusula GROUP BY ou ser usada em uma function agregada

Ambas as duas instruções a seguir geram um erro no Postgres: SELECT substring(start_time,1,8) AS date, count(*) as total from cdrs group by date; SELECT substring(start_time,1,8) AS date, count(*) as total from cdrs group by substring(start_time,1,8); O erro é: A coluna “cdrs.start_time” deve aparecer na cláusula GROUP BY ou ser usada em uma function agregada Minha […]

Dificuldade com consulta ActiveRecord que faz cálculo de porcentagem

Eu tenho um esquema ActiveRecord, PurchaseSummary, que eu herdei e que eu não posso mudar que se parece com isso: purchase_summaries date date_of_purchase integer number_of_purchases boolean coupon_used Por exemplo, para 1º de novembro, havia 800 compras, 500 sem cupom, 300 com cupom e, em 2 de novembro, 600 compras sem cupom e 100 com, portanto, […]