🎯 Цель: Найти количество уникальных пользователей, если: - Регистр не учитывается (`alice` = `ALICE`) - Пробелы игнорируются - Для @gmail.com: — Убираются точки в имени — Всё после + отрезается
✅ SQL-решение:
SELECT COUNT(DISTINCT normalized_email) AS unique_users FROM ( SELECT CASE WHEN email ILIKE '%@gmail.com' THEN REGEXP_REPLACE( SPLIT_PART(SPLIT_PART(LOWER(TRIM(email)), '+', 1), '@', 1), '\.', '', 'g' ) || '@gmail.com' ELSE LOWER(REPLACE(TRIM(email), ' ', '')) END AS normalized_email FROM users ) AS cleaned;
🔍 Как это работает:
LOWER(TRIM(email)) — убираем пробелы и регистр
SPLIT_PART(..., '+', 1) — отрезаем всё после +
REGEXP_REPLACE(..., '\.', '', 'g') — удаляем точки
Считаем DISTINCT, чтобы получить число уникальных email'ов
🔥 Используй такие трюки для: • антифрода • чистки базы • аналитики поведения пользователей
🎯 Цель: Найти количество уникальных пользователей, если: - Регистр не учитывается (`alice` = `ALICE`) - Пробелы игнорируются - Для @gmail.com: — Убираются точки в имени — Всё после + отрезается
✅ SQL-решение:
SELECT COUNT(DISTINCT normalized_email) AS unique_users FROM ( SELECT CASE WHEN email ILIKE '%@gmail.com' THEN REGEXP_REPLACE( SPLIT_PART(SPLIT_PART(LOWER(TRIM(email)), '+', 1), '@', 1), '\.', '', 'g' ) || '@gmail.com' ELSE LOWER(REPLACE(TRIM(email), ' ', '')) END AS normalized_email FROM users ) AS cleaned;
🔍 Как это работает:
LOWER(TRIM(email)) — убираем пробелы и регистр
SPLIT_PART(..., '+', 1) — отрезаем всё после +
REGEXP_REPLACE(..., '\.', '', 'g') — удаляем точки
Считаем DISTINCT, чтобы получить число уникальных email'ов
🔥 Используй такие трюки для: • антифрода • чистки базы • аналитики поведения пользователей
That growth environment will include rising inflation and interest rates. Those upward shifts naturally accompany healthy growth periods as the demand for resources, products and services rise. Importantly, the Federal Reserve has laid out the rationale for not interfering with that natural growth transition.It's not exactly a fad, but there is a widespread willingness to pay up for a growth story. Classic fundamental analysis takes a back seat. Even negative earnings are ignored. In fact, positive earnings seem to be a limiting measure, producing the question, "Is that all you've got?" The preference is a vision of untold riches when the exciting story plays out as expected.
How Does Bitcoin Work?
Bitcoin is built on a distributed digital record called a blockchain. As the name implies, blockchain is a linked body of data, made up of units called blocks that contain information about each and every transaction, including date and time, total value, buyer and seller, and a unique identifying code for each exchange. Entries are strung together in chronological order, creating a digital chain of blocks. “Once a block is added to the blockchain, it becomes accessible to anyone who wishes to view it, acting as a public ledger of cryptocurrency transactions,” says Stacey Harris, consultant for Pelicoin, a network of cryptocurrency ATMs. Blockchain is decentralized, which means it’s not controlled by any one organization. “It’s like a Google Doc that anyone can work on,” says Buchi Okoro, CEO and co-founder of African cryptocurrency exchange Quidax. “Nobody owns it, but anyone who has a link can contribute to it. And as different people update it, your copy also gets updated.”