На основании комментариев я понимаю, что вы хотите разделить клиентов на две группы: клиенты, у которых были первые транзакции в течение периода, должны быть отделены от тех, у которых были транзакции ранее. Для каждой группы вы хотите подсчитать количество клиентов и суммировать стоимость транзакций.
Обратите внимание: ваш sql-код не показывает горячие вычисления qty
и count_of_orders
, поэтому я оставил это отдельно (но это, вероятно, будет следовать той же логике).
Учитывая данные этого примера:
INDIVIDUAL_ID | DOLLAR_VALUE_US | TXN_DATE | RAND_ORG_CODE | IS_MERCH | CURRENCY_CODE | LINE_ITEM_AMT_TYPE_CD ------------: | --------------: | :-------- | :------------ | -------: | :------------ | :-------------------- 1 | 10 | 01-FEB-19 | BRAND | 1 | USD | S 1 | 10 | 10-FEB-19 | BRAND | 1 | USD | S 1 | 10 | 15-FEB-19 | BRAND | 1 | USD | S 1 | 10 | 28-FEB-19 | BRAND | 1 | USD | S 2 | 11 | 11-FEB-19 | BRAND | 1 | USD | S 2 | 11 | 12-FEB-19 | BRAND | 1 | USD | S 3 | 11 | 12-FEB-19 | BRAND | 1 | USD | S
Учитывая диапазон недели с 10 по 16 февраля, клиент 1
является возвращающимся клиентом с двумя транзакциями в окне, а также клиентами 2
и [117 ] являются новыми клиентами соответственно с 2 и 1 транзакциями. Можно ожидать следующий вывод:
TYPE_OF_CUSTOMER | COUNT_OF_CUSTOMERS | SUM_DOLLAR_VALUE_US :------------------ | -----------------: | ------------------: New Customers | 2 | 33 Returning Customers | 1 | 20
Чтобы решить эту проблему, вам нужно настроить несколько уровней агрегации. Во-первых, используйте оконную функцию MIN() OVER()
, чтобы восстановить дату первой транзакции каждого клиента. Затем отфильтруйте период анализа, разделите клиентов на новые / возвращающиеся группы и соберите потраченные деньги. Наконец, соберите все результаты вместе.
Запрос:
SELECT
DECODE(is_new, 1, 'New Customers', 'Returning Customers') type_of_customer,
COUNT(individual_id) count_of_customers,
SUM(dollar_value_us) sum_dollar_value_us
FROM (
SELECT
individual_id,
SUM(dollar_value_us) dollar_value_us,
CASE WHEN MIN(txn_date) = min_txn_date THEN 1 ELSE 0 END is_new
FROM (
SELECT
individual_id,
dollar_value_us,
txn_date,
MIN(txn_date) OVER(PARTITION BY individual_id) min_txn_date
FROM transaction_detail_mv
WHERE
rand_org_code = 'BRAND'
AND is_merch = 1
AND currency_code = 'USD'
AND line_item_amt_type_cd = 'S'
) t
WHERE
txn_date >= TO_DATE('10-02-2019', 'DD-MM-YYYY')
AND txn_date < TO_DATE('17-02-2019', 'DD-MM-YYYY')
GROUP BY
individual_id,
min_txn_date
) x GROUP BY is_new
Эта демонстрация на DB Fiddle демонстрирует каждый шаг вычисления.
Python и PHP имеют привязку для GTK :
Вы можете использовать Glade в качестве RADD для рисования приложения GTK.
GTK работает в Windows, Linux и Mac OS.
Если вы ищете что-то, встраивающее все, я могу подумать о SPE для Python, но вы действительно можете запускать Glade как отдельный.
Поскольку любая картинка стоит 1000 слов:
Я позволил любителям PHP выбирать свой языковой эквивалент.
Вы действительно должны проверить Vs.php Vs.php это Visual Studio (автономный) или Visual Studio плагин. Теперь, если кто-то сделает то же самое для xcode ...
TurboPHP , и теперь это проект с открытым исходным кодом.
Также В wxPython есть GUI Builder.
Я думаю, Морфик это инструмент RAD в значительной степени как то, что вы ищете. Тем не менее, язык, на котором вы программируете, не является PHP или Python. Он использует ObjectPascal, c # или Basic:
Delphi4PHP is the only I know of, back in the old days I also used Macromedia (now Adobe) Dreamweaver to generate some code, and if you set up a live site it kinda acts like a RAD IDE. Kinda.
For Python, I asked a similar question a couple of hours ago, I'm also interested in knowing such tool.
Хорошая новость в том, что вы не пропустите это как только вы ознакомитесь с способом работы, когда обязанности разделены.
Подумайте: действительно ли программист - это тот человек, который должен собрать пользовательский интерфейс? Я думаю, что даже в случае настольного приложения.
Программист должен написать хороший код, разделить логику отображения и передать все вещи для презентации
Не так уж и плохо, что такого инструмента для PHP и Python не существует.
для python попробуйте BoaConstructor , если вы пришли на delphi background, это хорошее начало.
Я только что вспомнил еще несколько инструментов, которые могут быть вам полезны, кроме WebDev:
Для Python я попробую DialogBlocks позже этим вечером.
Wingware выглядит как довольно приличная среда разработки Python
Поскольку вы упомянули Delphi, вы можете попробовать ExtPascal - http://code.google.com/p/extpascal/ . Для этого фреймворка существует поддержка сторонних разработчиков (Delphi и Lazarus).
Позвольте мне подробнее рассказать о CodeCharge Studio. Я думаю, вы еще можете рассмотреть эту систему. Лично я использовал его для разработки очень сложных CRM-приложений с высокой нагрузкой, основанных на базе данных, с версией 4.x он даже генерирует код на основе AJAX и автозаполнение, отправка формы ajax - это кусок пирога. С CCS вам иногда может потребоваться некоторая настройка, но приемы довольно типичны. Таким образом, CodeCharge Studio по-прежнему подходит и для сложных приложений.
Я нашел среду IDE, которая позволит пользователю визуально создавать приложения на основе Python. IDE является открытым источником и из Японии.
Проверьте это!
И
Я должен сказать, что не использовал ее. Я только что обнаружил это!
Я все еще ищу хорошую IDE для PHP, которая позволила бы мне создавать графический интерфейс визуально.
Надеюсь, это поможет другим.