Skip to content

Instantly share code, notes, and snippets.

@srishtis
Last active November 7, 2018 06:40
Show Gist options
  • Save srishtis/c01ec1f032f0dd0b0712aa7df1a41aa5 to your computer and use it in GitHub Desktop.
Save srishtis/c01ec1f032f0dd0b0712aa7df1a41aa5 to your computer and use it in GitHub Desktop.
compute the combination of Euclidean distances
CREATE TABLE EUCLIDEAN_TABLE AS
SELECT DEVICE_ID_TEST AS TEST_DEVICE, DEVICE_OS_TEST, USAGE_TEST, DEVICE_ID_CTRL AS CONTROL_DEVICE, DEVICE_OS_CTRL, USAGE_CTRL
, SQRT (
(POWER (RETAIL_PRICE,2))+
(POWER (RAM,2))+
(POWER (AGE,2))+
(POWER (STORAGE,2))+
(POWER (SCREEN_SIZE,2))
) AS EUCLEDIAN_DEV_5
, SQRT (
(POWER (RETAIL_PRICE,2))+
(POWER (STORAGE,2))+
(POWER (RAM,2))
) AS EUCLEDIAN_DEV_3
, SQRT (
(POWER (RETAIL_PRICE,2))
) AS EUCLEDIAN_DEV_1
FROM
(
SELECT A.DEVICE_ID_TEST,A.DEVICE_OS_TEST, A.USAGE_TEST, B.DEVICE_ID_CTRL, B.DEVICE_OS_CTRL, B.USAGE_CTRL,
(A.CURR_RETAIL_PRC_TEST)-(B.CURR_RETAIL_PRC_CTRL) AS RETAIL_PRICE,
(A.DEVICE_RAM_TEST)-(B.DEVICE_RAM_CTRL) AS RAM,
(A.AGE_TEST)-(B.AGE_CONTROL) AS AGE,
(A.DEVICE_STORAGE_TEST)-(B.DEVICE_STORAGE_CTRL) AS STORAGE,
(A.SCREEN_INCH_TEST)-(B.SCREEN_INCH_CTRL) AS SCREEN_SIZE
FROM
(
SELECT DEVICE_ID AS DEVICE_ID_TEST
, DEVICE_DESC AS DEVICE_DESC_TEST
, CURR_RETAIL_PRC AS CURR_RETAIL_PRC_TEST
, DEVICE_RAM AS DEVICE_RAM_TEST
, AGE AS AGE_TEST
, DEVICE_STORAGE AS DEVICE_STORAGE_TEST
, SCREEN_INCH AS SCREEN_INCH_TEST
, DEVICE_OS AS DEVICE_OS_TEST
, USAGE AS USAGE_TEST
FROM TABLE_NAME
WHERE BRAND_FLAG = 1
)A
INNER JOIN
(
SELECT DEVICE_ID AS DEVICE_ID_CTRL
, DEVICE_DESC AS DEVICE_DESC_CTRL
, CURR_RETAIL_PRC AS CURR_RETAIL_PRC_CTRL
, DEVICE_RAM AS DEVICE_RAM_CTRL
, AGE AS AGE_TEST
, DEVICE_STORAGE AS DEVICE_STORAGE_CTRL
, SCREEN_INCH AS SCREEN_INCH_CTRL
, DEVICE_OS AS DEVICE_OS_CTRL
, USAGE AS USAGE_CTRL
FROM TABLE_NAME
WHERE BRAND_FLAG = 0
)B
ON A.DEVICE_OS_TEST = B.DEVICE_OS_CTRL AND A.USAGE_TEST = B.USAGE_CTRL
)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment