Как изъять данные из базы данных?

Данная статья будет периодически обновляться для того, чтобы собрать все способы изъятия нужных данных из базы данных.

Способ №1. Агрегация данных.

Уровень приложения Excel. Формула суммирования массива.

{=СУММ(((Массив_отбора_по_критерию)=Критерий)*(Массив значений))}

где

{= … } – фигурные скобки означают, что это формула массива (вводится сочетанием Ctrl + Shift + Enter),

СУММ(…) – суммирует отобранные значения. В английской версии Excel формула будет называться SUM(…).

(Массив_отбора_по_критерию)=Критерий – формула, создающая массив (матрицу данных) TRUE/FALSE, где TRUE соответствует ячейкам по определённому отобранному критерию,

*(Массив значений) – отбирает массив (матрицу данных), на который умножает по ранее отобранному критерию TRUE в 1, FALSE в 0, в результате чего остаются только значения из массива, где данные по критерию отобраны,

Например, {=СУММ(((A21:A148)=AI21)*(R21:R148))} означает, что массивом (матрицей данных) является (A21:A148), AI21 является критерием, R21:R148 – массивом значений, на который умножается массив TRUE/FALSE.

На разных уровнях можно этот способ использовать в соответствующих вариантах:

Вариант А. Ядро SQL
SELECT SUM(Значения) FROM Таблица WHERE Критерий_столбец = ‘Критерий’;

Вариант Б. Классическая формула массива Excel
{=СУММ(((Критерий_столбец)=Критерий)*(Массив_значений))}

Вариант В. Динамические массивы Excel (MS 365)
=SUM(FILTER(Массив_значений; Критерий_столбец = Критерий))

Вариант Г. Язык программирования (Python/Pandas)
df.loc[df[‘Критерий_столбец’] == ‘Критерий’, ‘Значения’].sum()

Способ №2. Поиск и выборка.

Уровень приложения Excel. Формула поиска и соединения данных.

=ВПР(Искомый_ключ; Таблица_поиска; Номер_столбца_с_данными; [Интервал_просмотра])

В английской версии Excel формула будет иметь название VLOOKUP

Другие варианты:

Ядро SQL (Оператор JOIN)
SELECT t1.*, t2.Нужное_значение FROM Таблица1 t1 LEFT JOIN Таблица2 t2 ON t1.Ключ = t2.Ключ;

ИНДЕКС/ПОИСКПОЗ (INDEX/MATCH) — Гибкий поиск
=ИНДЕКС(Столбец_с_результатом; ПОИСКПОЗ(Искомый_ключ; Столбец_для_поиска; 0))

XПР (XLOOKUP) — Современный поиск (MS 365)
=XПР(Искомый_ключ; Столбец_для_поиска; Столбец_с_результатом; [Если_не_найдено]; [Режим_совпадения])

Соединение в Power Query (Аналог SQL JOIN в интерфейсе)

Программное соединение (Python/Pandas)
merged_df = pd.merge(df1, df2, on=’Ключевой_столбец’, how=’left’)
result_value = merged_df.loc[merged_df[‘Ключевой_столбец’] == Искомый_ключ, ‘Нужное_значение’].iloc[0]