209 похожих чатов

Добрый день, прошу помочь с такой задачей: Есть таблица фактов (источник

БД) ~ 3 МЛН строк в ней есть поле "Город" ~ 38 000 уникальных значений,
Есть файл Excel - справочник городов - 120 уникальных значений.

Как в таблице фактов оставить только те строки с городами которые содержатся в справочнике?

ничего лучше чем джойн и удаление пустых не придумал.

Посоветуйте пожалуйста как это можно сделать, или может быть подход не верный и лучше это сделать на стороне БД? (к примеру)

8 ответов

19 просмотров

А чем не подходит inner join на стороне БД?

в разрезе города выбираете последнюю дату ?

Andrey Igoshev- Автор вопроса
Andrey Kozlenok
в разрезе города выбираете последнюю дату ?

на выбор влияет только город, остальные данные не влияют выбор, если город повторяется в таблице фактов несколько раз, то сохраняются все строки с этим городом. если город есть в справочнике - оставляем, если нет - удаляем.

Andrey Igoshev- Автор вопроса
Artem
А чем не подходит inner join на стороне БД?

не то чтобы не подходил, просто нет знаний в SQL , и данных справочника в базе нет, они в Excel, я могу только вручную все города вписать в запрос, так можно?

Andrey Igoshev
не то чтобы не подходил, просто нет знаний в SQL ,...

Упустил условие с файлом Эксель. Можно, только каждый раз придётся запрос переписывать. Идеальный сценарий, как по мне, затягивать справочник из Эксель в БД. Можно еще попробовать применить inner join, ц вас сейчас как понял left join используется.

Andrey Igoshev
не то чтобы не подходил, просто нет знаний в SQL ,...

я не знаю ограничений конкретно в длину запроса и количества условий, но что-то такое let Source = { "Москва", "Сант-Петербург", "Иваново", "Абакан", "Апатиты" }, textCombine = "city = '" & Text.Combine( Source, "' OR city = '" ) & "'", sqlQuery = "SELECT * FROM dict WHERE " & textCombine in sqlQuery

Andrey Igoshev- Автор вопроса

Спасибо, попробую решить этот вопрос на стороне БД

Andrey Igoshev
Спасибо, попробую решить этот вопрос на стороне БД

Если предположить, что справочник городов в Эксель меняется раз в год и вам не лениво будет подправлять запрос, то на стороне БД создать временную таблицу (или постоянную, как нравится) со списком городов. И затем делать inner join к таблице фактов.

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта