1507 lines
40 KiB
XML
1507 lines
40 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<transformation>
|
||
<info>
|
||
<name>total_registered.driver_license</name>
|
||
<description/>
|
||
<extended_description/>
|
||
<trans_version/>
|
||
<trans_type>Normal</trans_type>
|
||
<trans_status>0</trans_status>
|
||
<directory>/</directory>
|
||
<parameters>
|
||
</parameters>
|
||
<log>
|
||
<trans-log-table>
|
||
<connection/>
|
||
<schema/>
|
||
<table/>
|
||
<size_limit_lines/>
|
||
<interval/>
|
||
<timeout_days/>
|
||
<field>
|
||
<id>ID_BATCH</id>
|
||
<enabled>Y</enabled>
|
||
<name>ID_BATCH</name>
|
||
</field>
|
||
<field>
|
||
<id>CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>CHANNEL_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>TRANSNAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>TRANSNAME</name>
|
||
</field>
|
||
<field>
|
||
<id>STATUS</id>
|
||
<enabled>Y</enabled>
|
||
<name>STATUS</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_READ</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_READ</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>LINES_WRITTEN</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_WRITTEN</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>LINES_UPDATED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_UPDATED</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>LINES_INPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_INPUT</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>LINES_OUTPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_OUTPUT</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>LINES_REJECTED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_REJECTED</name>
|
||
<subject/>
|
||
</field>
|
||
<field>
|
||
<id>ERRORS</id>
|
||
<enabled>Y</enabled>
|
||
<name>ERRORS</name>
|
||
</field>
|
||
<field>
|
||
<id>STARTDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>STARTDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>ENDDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>ENDDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>LOGDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOGDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>DEPDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>DEPDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>REPLAYDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>REPLAYDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>LOG_FIELD</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOG_FIELD</name>
|
||
</field>
|
||
<field>
|
||
<id>EXECUTING_SERVER</id>
|
||
<enabled>N</enabled>
|
||
<name>EXECUTING_SERVER</name>
|
||
</field>
|
||
<field>
|
||
<id>EXECUTING_USER</id>
|
||
<enabled>N</enabled>
|
||
<name>EXECUTING_USER</name>
|
||
</field>
|
||
<field>
|
||
<id>CLIENT</id>
|
||
<enabled>N</enabled>
|
||
<name>CLIENT</name>
|
||
</field>
|
||
</trans-log-table>
|
||
<perf-log-table>
|
||
<connection/>
|
||
<schema/>
|
||
<table/>
|
||
<interval/>
|
||
<timeout_days/>
|
||
<field>
|
||
<id>ID_BATCH</id>
|
||
<enabled>Y</enabled>
|
||
<name>ID_BATCH</name>
|
||
</field>
|
||
<field>
|
||
<id>SEQ_NR</id>
|
||
<enabled>Y</enabled>
|
||
<name>SEQ_NR</name>
|
||
</field>
|
||
<field>
|
||
<id>LOGDATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOGDATE</name>
|
||
</field>
|
||
<field>
|
||
<id>TRANSNAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>TRANSNAME</name>
|
||
</field>
|
||
<field>
|
||
<id>STEPNAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>STEPNAME</name>
|
||
</field>
|
||
<field>
|
||
<id>STEP_COPY</id>
|
||
<enabled>Y</enabled>
|
||
<name>STEP_COPY</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_READ</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_READ</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_WRITTEN</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_WRITTEN</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_UPDATED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_UPDATED</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_INPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_INPUT</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_OUTPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_OUTPUT</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_REJECTED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_REJECTED</name>
|
||
</field>
|
||
<field>
|
||
<id>ERRORS</id>
|
||
<enabled>Y</enabled>
|
||
<name>ERRORS</name>
|
||
</field>
|
||
<field>
|
||
<id>INPUT_BUFFER_ROWS</id>
|
||
<enabled>Y</enabled>
|
||
<name>INPUT_BUFFER_ROWS</name>
|
||
</field>
|
||
<field>
|
||
<id>OUTPUT_BUFFER_ROWS</id>
|
||
<enabled>Y</enabled>
|
||
<name>OUTPUT_BUFFER_ROWS</name>
|
||
</field>
|
||
</perf-log-table>
|
||
<channel-log-table>
|
||
<connection/>
|
||
<schema/>
|
||
<table/>
|
||
<timeout_days/>
|
||
<field>
|
||
<id>ID_BATCH</id>
|
||
<enabled>Y</enabled>
|
||
<name>ID_BATCH</name>
|
||
</field>
|
||
<field>
|
||
<id>CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>CHANNEL_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>LOG_DATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOG_DATE</name>
|
||
</field>
|
||
<field>
|
||
<id>LOGGING_OBJECT_TYPE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOGGING_OBJECT_TYPE</name>
|
||
</field>
|
||
<field>
|
||
<id>OBJECT_NAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>OBJECT_NAME</name>
|
||
</field>
|
||
<field>
|
||
<id>OBJECT_COPY</id>
|
||
<enabled>Y</enabled>
|
||
<name>OBJECT_COPY</name>
|
||
</field>
|
||
<field>
|
||
<id>REPOSITORY_DIRECTORY</id>
|
||
<enabled>Y</enabled>
|
||
<name>REPOSITORY_DIRECTORY</name>
|
||
</field>
|
||
<field>
|
||
<id>FILENAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>FILENAME</name>
|
||
</field>
|
||
<field>
|
||
<id>OBJECT_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>OBJECT_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>OBJECT_REVISION</id>
|
||
<enabled>Y</enabled>
|
||
<name>OBJECT_REVISION</name>
|
||
</field>
|
||
<field>
|
||
<id>PARENT_CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>PARENT_CHANNEL_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>ROOT_CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>ROOT_CHANNEL_ID</name>
|
||
</field>
|
||
</channel-log-table>
|
||
<step-log-table>
|
||
<connection/>
|
||
<schema/>
|
||
<table/>
|
||
<timeout_days/>
|
||
<field>
|
||
<id>ID_BATCH</id>
|
||
<enabled>Y</enabled>
|
||
<name>ID_BATCH</name>
|
||
</field>
|
||
<field>
|
||
<id>CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>CHANNEL_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>LOG_DATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOG_DATE</name>
|
||
</field>
|
||
<field>
|
||
<id>TRANSNAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>TRANSNAME</name>
|
||
</field>
|
||
<field>
|
||
<id>STEPNAME</id>
|
||
<enabled>Y</enabled>
|
||
<name>STEPNAME</name>
|
||
</field>
|
||
<field>
|
||
<id>STEP_COPY</id>
|
||
<enabled>Y</enabled>
|
||
<name>STEP_COPY</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_READ</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_READ</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_WRITTEN</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_WRITTEN</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_UPDATED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_UPDATED</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_INPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_INPUT</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_OUTPUT</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_OUTPUT</name>
|
||
</field>
|
||
<field>
|
||
<id>LINES_REJECTED</id>
|
||
<enabled>Y</enabled>
|
||
<name>LINES_REJECTED</name>
|
||
</field>
|
||
<field>
|
||
<id>ERRORS</id>
|
||
<enabled>Y</enabled>
|
||
<name>ERRORS</name>
|
||
</field>
|
||
<field>
|
||
<id>LOG_FIELD</id>
|
||
<enabled>N</enabled>
|
||
<name>LOG_FIELD</name>
|
||
</field>
|
||
</step-log-table>
|
||
<metrics-log-table>
|
||
<connection/>
|
||
<schema/>
|
||
<table/>
|
||
<timeout_days/>
|
||
<field>
|
||
<id>ID_BATCH</id>
|
||
<enabled>Y</enabled>
|
||
<name>ID_BATCH</name>
|
||
</field>
|
||
<field>
|
||
<id>CHANNEL_ID</id>
|
||
<enabled>Y</enabled>
|
||
<name>CHANNEL_ID</name>
|
||
</field>
|
||
<field>
|
||
<id>LOG_DATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>LOG_DATE</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_DATE</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_DATE</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_CODE</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_CODE</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_DESCRIPTION</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_DESCRIPTION</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_SUBJECT</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_SUBJECT</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_TYPE</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_TYPE</name>
|
||
</field>
|
||
<field>
|
||
<id>METRICS_VALUE</id>
|
||
<enabled>Y</enabled>
|
||
<name>METRICS_VALUE</name>
|
||
</field>
|
||
</metrics-log-table>
|
||
</log>
|
||
<maxdate>
|
||
<connection/>
|
||
<table/>
|
||
<field/>
|
||
<offset>0.0</offset>
|
||
<maxdiff>0.0</maxdiff>
|
||
</maxdate>
|
||
<size_rowset>10000</size_rowset>
|
||
<sleep_time_empty>50</sleep_time_empty>
|
||
<sleep_time_full>50</sleep_time_full>
|
||
<unique_connections>N</unique_connections>
|
||
<feedback_shown>Y</feedback_shown>
|
||
<feedback_size>50000</feedback_size>
|
||
<using_thread_priorities>Y</using_thread_priorities>
|
||
<shared_objects_file/>
|
||
<capture_step_performance>N</capture_step_performance>
|
||
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
|
||
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
|
||
<dependencies>
|
||
</dependencies>
|
||
<partitionschemas>
|
||
</partitionschemas>
|
||
<slaveservers>
|
||
<slaveserver>
|
||
<name>local</name>
|
||
<hostname>localhost</hostname>
|
||
<port>8888</port>
|
||
<webAppName/>
|
||
<username>cluster</username>
|
||
<password>Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8</password>
|
||
<proxy_hostname/>
|
||
<proxy_port/>
|
||
<non_proxy_hosts/>
|
||
<master>Y</master>
|
||
<sslMode>N</sslMode>
|
||
</slaveserver>
|
||
</slaveservers>
|
||
<clusterschemas>
|
||
</clusterschemas>
|
||
<created_user>-</created_user>
|
||
<created_date>2024/08/02 11:56:22.507</created_date>
|
||
<modified_user>-</modified_user>
|
||
<modified_date>2024/08/02 11:56:22.507</modified_date>
|
||
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
|
||
<is_key_private>N</is_key_private>
|
||
</info>
|
||
<notepads>
|
||
</notepads>
|
||
<connection>
|
||
<name>ervu-dashboard</name>
|
||
<server>dashboard-dbhost</server>
|
||
<type>POSTGRESQL</type>
|
||
<access>Native</access>
|
||
<database>dashboard-dbname</database>
|
||
<port>1111</port>
|
||
<username>dashboard-dbuser</username>
|
||
<password>Encrypted 2daf9dca008c89396af54aa72ce93bcc9</password>
|
||
<servername/>
|
||
<data_tablespace/>
|
||
<index_tablespace/>
|
||
<attributes>
|
||
<attribute>
|
||
<code>EXTRA_OPTION_POSTGRESQL.stringtype</code>
|
||
<attribute>unspecified</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>IS_CLUSTERED</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>PORT_NUMBER</code>
|
||
<attribute>1111</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>PRESERVE_RESERVED_WORD_CASE</code>
|
||
<attribute>Y</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>QUOTE_ALL_FIELDS</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>USE_POOLING</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
</attributes>
|
||
</connection>
|
||
<connection>
|
||
<name>postgres.person_registry</name>
|
||
<server>person-dbhost</server>
|
||
<type>POSTGRESQL</type>
|
||
<access>Native</access>
|
||
<database>person-dbname</database>
|
||
<port>4444</port>
|
||
<username>person-dbuser</username>
|
||
<password>Encrypted 2be98afb80fd5818ba554aa72ce93bcc9</password>
|
||
<servername/>
|
||
<data_tablespace/>
|
||
<index_tablespace/>
|
||
<attributes>
|
||
<attribute>
|
||
<code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>IS_CLUSTERED</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>PORT_NUMBER</code>
|
||
<attribute>4444</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>PRESERVE_RESERVED_WORD_CASE</code>
|
||
<attribute>Y</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>QUOTE_ALL_FIELDS</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
<attribute>
|
||
<code>USE_POOLING</code>
|
||
<attribute>N</attribute>
|
||
</attribute>
|
||
</attributes>
|
||
</connection>
|
||
<order>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/женщины</from>
|
||
<to>Insert / update (total_registered.driver_license) 2 2 2</to>
|
||
<enabled>N</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/мужчины</from>
|
||
<to>Insert / update (total_registered.driver_license) 2 2</to>
|
||
<enabled>N</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/все</from>
|
||
<to>Insert / update (total_registered.driver_license) 2</to>
|
||
<enabled>N</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Get variables 3 2 2</from>
|
||
<to>Select values 3 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Get variables 3 2 2 2</from>
|
||
<to>Select values 3 2 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Get variables 3 2 2 3</from>
|
||
<to>Select values 3 2 2 3</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/женщины</from>
|
||
<to>Get variables 3 2 2 3</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Select values 3 2 2 3</from>
|
||
<to>Insert / update (total_registered.driver_license) 2 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/мужчины</from>
|
||
<to>Get variables 3 2 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Select values 3 2 2 2</from>
|
||
<to>Insert / update (total_registered.driver_license) 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Table input (person_registry) РФ/все</from>
|
||
<to>Get variables 3 2 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
<hop>
|
||
<from>Select values 3 2 2</from>
|
||
<to>Insert / update (total_registered.driver_license) 2</to>
|
||
<enabled>Y</enabled>
|
||
</hop>
|
||
</order>
|
||
<step>
|
||
<name>Get variables 3 2 2</name>
|
||
<type>GetVariable</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<field>
|
||
<name>REG_ID</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
<field>
|
||
<name>VK_ARRAY</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>704</xloc>
|
||
<yloc>160</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Get variables 3 2 2 2</name>
|
||
<type>GetVariable</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<field>
|
||
<name>REG_ID</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
<field>
|
||
<name>VK_ARRAY</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>704</xloc>
|
||
<yloc>288</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Get variables 3 2 2 3</name>
|
||
<type>GetVariable</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<field>
|
||
<name>REG_ID</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
<field>
|
||
<name>VK_ARRAY</name>
|
||
<variable/>
|
||
<type>String</type>
|
||
<format/>
|
||
<currency/>
|
||
<decimal/>
|
||
<group/>
|
||
<length>-1</length>
|
||
<precision>-1</precision>
|
||
<trim_type>none</trim_type>
|
||
</field>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>704</xloc>
|
||
<yloc>432</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Insert / update (total_registered.driver_license) 2</name>
|
||
<type>InsertUpdate</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>ervu-dashboard</connection>
|
||
<commit>100</commit>
|
||
<update_bypassed>Y</update_bypassed>
|
||
<lookup>
|
||
<schema>total_registered</schema>
|
||
<table>driver_license</table>
|
||
<key>
|
||
<name>REG_ID</name>
|
||
<field>recruitment_id</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<key>
|
||
<name>gender</name>
|
||
<field>"all_M_W"</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<value>
|
||
<name>"A"</name>
|
||
<rename>a</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B"</name>
|
||
<rename>b</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C"</name>
|
||
<rename>c</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D"</name>
|
||
<rename>d</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E"</name>
|
||
<rename>e</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>nope</name>
|
||
<rename>nope</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"A_repcent"</name>
|
||
<rename>a_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B_repcent"</name>
|
||
<rename>b_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C_repcent"</name>
|
||
<rename>c_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D_repcent"</name>
|
||
<rename>d_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E_repcent"</name>
|
||
<rename>e_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"all_M_W"</name>
|
||
<rename>gender</rename>
|
||
<update>N</update>
|
||
</value>
|
||
<value>
|
||
<name>recruitment_id</name>
|
||
<rename>recruitment_id</rename>
|
||
<update>N</update>
|
||
</value>
|
||
</lookup>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>1088</xloc>
|
||
<yloc>112</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Insert / update (total_registered.driver_license) 2 2</name>
|
||
<type>InsertUpdate</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>ervu-dashboard</connection>
|
||
<commit>100</commit>
|
||
<update_bypassed>Y</update_bypassed>
|
||
<lookup>
|
||
<schema>total_registered</schema>
|
||
<table>driver_license</table>
|
||
<key>
|
||
<name>REG_ID</name>
|
||
<field>recruitment_id</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<key>
|
||
<name>gender</name>
|
||
<field>"all_M_W"</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<value>
|
||
<name>"A"</name>
|
||
<rename>a</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B"</name>
|
||
<rename>b</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C"</name>
|
||
<rename>c</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D"</name>
|
||
<rename>d</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E"</name>
|
||
<rename>e</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>nope</name>
|
||
<rename>nope</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"A_repcent"</name>
|
||
<rename>a_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B_repcent"</name>
|
||
<rename>b_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C_repcent"</name>
|
||
<rename>c_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D_repcent"</name>
|
||
<rename>d_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E_repcent"</name>
|
||
<rename>e_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"all_M_W"</name>
|
||
<rename>gender</rename>
|
||
<update>N</update>
|
||
</value>
|
||
<value>
|
||
<name>recruitment_id</name>
|
||
<rename>recruitment_id</rename>
|
||
<update>N</update>
|
||
</value>
|
||
</lookup>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>1088</xloc>
|
||
<yloc>240</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Insert / update (total_registered.driver_license) 2 2 2</name>
|
||
<type>InsertUpdate</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>ervu-dashboard</connection>
|
||
<commit>100</commit>
|
||
<update_bypassed>Y</update_bypassed>
|
||
<lookup>
|
||
<schema>total_registered</schema>
|
||
<table>driver_license</table>
|
||
<key>
|
||
<name>REG_ID</name>
|
||
<field>recruitment_id</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<key>
|
||
<name>gender</name>
|
||
<field>"all_M_W"</field>
|
||
<condition>=</condition>
|
||
<name2/>
|
||
</key>
|
||
<value>
|
||
<name>"A"</name>
|
||
<rename>a</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B"</name>
|
||
<rename>b</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C"</name>
|
||
<rename>c</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D"</name>
|
||
<rename>d</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E"</name>
|
||
<rename>e</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>nope</name>
|
||
<rename>nope</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"A_repcent"</name>
|
||
<rename>a_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"B_repcent"</name>
|
||
<rename>b_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"C_repcent"</name>
|
||
<rename>c_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"D_repcent"</name>
|
||
<rename>d_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"E_repcent"</name>
|
||
<rename>e_percent</rename>
|
||
<update>Y</update>
|
||
</value>
|
||
<value>
|
||
<name>"all_M_W"</name>
|
||
<rename>gender</rename>
|
||
<update>N</update>
|
||
</value>
|
||
<value>
|
||
<name>recruitment_id</name>
|
||
<rename>recruitment_id</rename>
|
||
<update>N</update>
|
||
</value>
|
||
</lookup>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>1088</xloc>
|
||
<yloc>384</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Select values 3 2 2</name>
|
||
<type>SelectValues</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<select_unspecified>N</select_unspecified>
|
||
<meta>
|
||
<name>REG_ID</name>
|
||
<rename>REG_ID</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
<meta>
|
||
<name>VK_ARRAY</name>
|
||
<rename>VK_ARRAY</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>848</xloc>
|
||
<yloc>160</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Select values 3 2 2 2</name>
|
||
<type>SelectValues</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<select_unspecified>N</select_unspecified>
|
||
<meta>
|
||
<name>REG_ID</name>
|
||
<rename>REG_ID</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
<meta>
|
||
<name>VK_ARRAY</name>
|
||
<rename>VK_ARRAY</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>848</xloc>
|
||
<yloc>288</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Select values 3 2 2 3</name>
|
||
<type>SelectValues</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<fields>
|
||
<select_unspecified>N</select_unspecified>
|
||
<meta>
|
||
<name>REG_ID</name>
|
||
<rename>REG_ID</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
<meta>
|
||
<name>VK_ARRAY</name>
|
||
<rename>VK_ARRAY</rename>
|
||
<type>String</type>
|
||
<length>-2</length>
|
||
<precision>-2</precision>
|
||
<conversion_mask/>
|
||
<date_format_lenient>false</date_format_lenient>
|
||
<date_format_locale/>
|
||
<date_format_timezone/>
|
||
<lenient_string_to_number>false</lenient_string_to_number>
|
||
<encoding/>
|
||
<decimal_symbol/>
|
||
<grouping_symbol/>
|
||
<currency_symbol/>
|
||
<storage_type/>
|
||
</meta>
|
||
</fields>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>848</xloc>
|
||
<yloc>432</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Table input (person_registry) РФ/все</name>
|
||
<type>TableInput</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>postgres.person_registry</connection>
|
||
<sql>WITH categorized AS (
|
||
SELECT
|
||
r.id,
|
||
r.gender,
|
||
-- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%A%' THEN 1 ELSE 0 END) AS has_A,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%B%' THEN 1 ELSE 0 END) AS has_B,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%C%' THEN 1 ELSE 0 END) AS has_C,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%D%' THEN 1 ELSE 0 END) AS has_D,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%E%' THEN 1 ELSE 0 END) AS has_E
|
||
FROM public.recruits_info ri
|
||
JOIN public.recruits r ON ri.recruit_id = r.id
|
||
LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true
|
||
WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true'
|
||
AND r.current_recruitment_id IS NOT NULL
|
||
AND r.target_recruitment_id IS NOT NULL
|
||
GROUP BY r.id, r.gender
|
||
),
|
||
aggregated AS (
|
||
SELECT
|
||
'ALL' AS gender,
|
||
'${REG_ID}' AS recruitment_id,
|
||
-- Считаем количество уникальных рекрутов с каждой категорией
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope,
|
||
COUNT(DISTINCT r.id) AS total
|
||
FROM categorized r
|
||
)
|
||
SELECT *,
|
||
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
|
||
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
|
||
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
|
||
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
|
||
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent,
|
||
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent
|
||
FROM aggregated;</sql>
|
||
<limit>0</limit>
|
||
<lookup/>
|
||
<execute_each_row>N</execute_each_row>
|
||
<variables_active>Y</variables_active>
|
||
<lazy_conversion_active>N</lazy_conversion_active>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>464</xloc>
|
||
<yloc>112</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Table input (person_registry) РФ/женщины</name>
|
||
<type>TableInput</type>
|
||
<description/>
|
||
<distribute>N</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>postgres.person_registry</connection>
|
||
<sql>WITH categorized AS (
|
||
SELECT
|
||
r.id,
|
||
r.gender,
|
||
-- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%A%' THEN 1 ELSE 0 END) AS has_A,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%B%' THEN 1 ELSE 0 END) AS has_B,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%C%' THEN 1 ELSE 0 END) AS has_C,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%D%' THEN 1 ELSE 0 END) AS has_D,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%E%' THEN 1 ELSE 0 END) AS has_E
|
||
FROM public.recruits_info ri
|
||
JOIN public.recruits r ON ri.recruit_id = r.id
|
||
LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true
|
||
WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true'
|
||
AND r.current_recruitment_id IS NOT NULL
|
||
AND r.target_recruitment_id IS NOT NULL
|
||
AND r.gender = 'FEMALE'
|
||
GROUP BY r.id, r.gender
|
||
),
|
||
aggregated AS (
|
||
SELECT
|
||
'W' AS gender,
|
||
'${REG_ID}' as recruitment_id,
|
||
-- Считаем количество уникальных рекрутов с каждой категорией
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope,
|
||
COUNT(DISTINCT r.id) AS total
|
||
FROM categorized r
|
||
)
|
||
SELECT *,
|
||
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
|
||
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
|
||
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
|
||
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
|
||
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent,
|
||
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent
|
||
FROM aggregated;</sql>
|
||
<limit>0</limit>
|
||
<lookup/>
|
||
<execute_each_row>N</execute_each_row>
|
||
<variables_active>Y</variables_active>
|
||
<lazy_conversion_active>N</lazy_conversion_active>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>464</xloc>
|
||
<yloc>384</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step>
|
||
<name>Table input (person_registry) РФ/мужчины</name>
|
||
<type>TableInput</type>
|
||
<description/>
|
||
<distribute>Y</distribute>
|
||
<custom_distribution/>
|
||
<copies>1</copies>
|
||
<partitioning>
|
||
<method>none</method>
|
||
<schema_name/>
|
||
</partitioning>
|
||
<connection>postgres.person_registry</connection>
|
||
<sql>WITH categorized AS (
|
||
SELECT
|
||
r.id,
|
||
r.gender,
|
||
-- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%A%' THEN 1 ELSE 0 END) AS has_A,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%B%' THEN 1 ELSE 0 END) AS has_B,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%C%' THEN 1 ELSE 0 END) AS has_C,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%D%' THEN 1 ELSE 0 END) AS has_D,
|
||
MAX(CASE WHEN cat->>'kategoriya' like '%E%' THEN 1 ELSE 0 END) AS has_E
|
||
FROM public.recruits_info ri
|
||
JOIN public.recruits r ON ri.recruit_id = r.id
|
||
LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true
|
||
WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true'
|
||
AND r.current_recruitment_id IS NOT NULL
|
||
AND r.target_recruitment_id IS NOT NULL
|
||
AND r.gender = 'MALE'
|
||
GROUP BY r.id, r.gender
|
||
),
|
||
aggregated AS (
|
||
SELECT
|
||
'M' AS gender,
|
||
'${REG_ID}' as recruitment_id,
|
||
-- Считаем количество уникальных рекрутов с каждой категорией
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e,
|
||
COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope,
|
||
COUNT(DISTINCT r.id) AS total
|
||
FROM categorized r
|
||
)
|
||
SELECT *,
|
||
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
|
||
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
|
||
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
|
||
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
|
||
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent,
|
||
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent
|
||
FROM aggregated;</sql>
|
||
<limit>0</limit>
|
||
<lookup/>
|
||
<execute_each_row>N</execute_each_row>
|
||
<variables_active>Y</variables_active>
|
||
<lazy_conversion_active>N</lazy_conversion_active>
|
||
<attributes/>
|
||
<cluster_schema/>
|
||
<remotesteps>
|
||
<input>
|
||
</input>
|
||
<output>
|
||
</output>
|
||
</remotesteps>
|
||
<GUI>
|
||
<xloc>464</xloc>
|
||
<yloc>240</yloc>
|
||
<draw>Y</draw>
|
||
</GUI>
|
||
</step>
|
||
<step_error_handling>
|
||
</step_error_handling>
|
||
<slave-step-copy-partition-distribution>
|
||
</slave-step-copy-partition-distribution>
|
||
<slave_transformation>N</slave_transformation>
|
||
<attributes/>
|
||
</transformation>
|