You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pig.apache.org by Raj hadoop <ra...@gmail.com> on 2013/04/22 20:44:42 UTC

Fwd: SQL to pig latin

Can anybody help on this to convert sql to pig for below query.

---------- Forwarded message ----------
From: suneel hadoop <su...@gmail.com>
Date: Mon, Apr 22, 2013 at 2:49 PM
Subject: SQL to pig latin
To: user <us...@hadoop.apache.org>, "user@hive.apache.org" <
user@hive.apache.org>, user-help@pig.apache.org




---------- Forwarded message ----------
From: *suneel hadoop*
Date: Monday, April 22, 2013
Subject:
To: user <us...@hadoop.apache.org>, user-help@pig.apache.org, "
user@hive.apache.org" <us...@hive.apache.org>


Can any one help me to change this SQL to pig Latin



SELECT ('CSS'||DB.DISTRICT_CODE||DB.BILLING_ACCOUNT_NO) BAC_KEY,

CASE WHEN T1.TAC_142 IS NULL THEN 'N' ELSE T1.TAC_142 END TAC_142 FROM

(



SELECT DISTRICT_CODE,BILLING_ACCOUNT_NO,

MAX(CASE WHEN TAC_1 = 'Y' AND (TAC_2 = 'Y' OR TAC_3 = 'Y') THEN 'Y' ELSE
'N' END) TAC_142 FROM

(

SELECT DI.DISTRICT_CODE,DI.BILLING_ACCOUNT_NO,DI.INST_SEQUENCE_NO,

MAX(CASE WHEN TRIM(DIP.PRODUCT_CODE) = 'A14493' AND UPPER(DI.HAZARD) LIKE
'%999%EMERGENCY%LINE%' AND UPPER(DI.WARNING) LIKE '%USE%999%ALERT%METHOD%'
THEN 'Y' ELSE 'N' END) TAC_1,

MAX(CASE WHEN TRIM(DIP.PRODUCT_TYPE) IN ('20','21') AND
TRIM(DIP.MAINTENANCE_CONTRACT) IN ('E','T') THEN 'Y' ELSE 'N' END) TAC_2,

MAX(CASE WHEN TRIM(DIP.PRODUCT_CODE) IN ('A14498','A14428','A22640') THEN
'Y' ELSE 'N' END) TAC_3

FROM

D_INSTALLATION DI,

D_INSTALLATION_PRODUCT DIP

WHERE

DIP.INST_SEQUENCE_NO = DI.INST_SEQUENCE_NO AND

DIP.BAC_WID = DI.BAC_WID

GROUP BY DI.DISTRICT_CODE,DI.BILLING_ACCOUNT_NO,DI.INST_SEQUENCE_NO

)

GROUP BY DISTRICT_CODE,BILLING_ACCOUNT_NO)

T1,

D_BILLING_ACCOUNT DB

WHERE

DB.DISTRICT_CODE = T1.DISTRICT_CODE(+) AND

DB.BILLING_ACCOUNT_NO = T1.BILLING_ACCOUNT_NO(+)

Re: SQL to pig latin

Posted by Thejas Nair <th...@hortonworks.com>.
Raj,
If you give a more general example of sql you want to convert, and
also say what part of the sql query you are having difficulty
converting, then it will be easier to help you.


On Mon, Apr 22, 2013 at 11:44 AM, Raj hadoop <ra...@gmail.com> wrote:
> Can anybody help on this to convert sql to pig for below query.
>
> ---------- Forwarded message ----------
> From: suneel hadoop <su...@gmail.com>
> Date: Mon, Apr 22, 2013 at 2:49 PM
> Subject: SQL to pig latin
> To: user <us...@hadoop.apache.org>, "user@hive.apache.org" <
> user@hive.apache.org>, user-help@pig.apache.org
>
>
>
>
> ---------- Forwarded message ----------
> From: *suneel hadoop*
> Date: Monday, April 22, 2013
> Subject:
> To: user <us...@hadoop.apache.org>, user-help@pig.apache.org, "
> user@hive.apache.org" <us...@hive.apache.org>
>
>
> Can any one help me to change this SQL to pig Latin
>
>
>
> SELECT ('CSS'||DB.DISTRICT_CODE||DB.BILLING_ACCOUNT_NO) BAC_KEY,
>
> CASE WHEN T1.TAC_142 IS NULL THEN 'N' ELSE T1.TAC_142 END TAC_142 FROM
>
> (
>
>
>
> SELECT DISTRICT_CODE,BILLING_ACCOUNT_NO,
>
> MAX(CASE WHEN TAC_1 = 'Y' AND (TAC_2 = 'Y' OR TAC_3 = 'Y') THEN 'Y' ELSE
> 'N' END) TAC_142 FROM
>
> (
>
> SELECT DI.DISTRICT_CODE,DI.BILLING_ACCOUNT_NO,DI.INST_SEQUENCE_NO,
>
> MAX(CASE WHEN TRIM(DIP.PRODUCT_CODE) = 'A14493' AND UPPER(DI.HAZARD) LIKE
> '%999%EMERGENCY%LINE%' AND UPPER(DI.WARNING) LIKE '%USE%999%ALERT%METHOD%'
> THEN 'Y' ELSE 'N' END) TAC_1,
>
> MAX(CASE WHEN TRIM(DIP.PRODUCT_TYPE) IN ('20','21') AND
> TRIM(DIP.MAINTENANCE_CONTRACT) IN ('E','T') THEN 'Y' ELSE 'N' END) TAC_2,
>
> MAX(CASE WHEN TRIM(DIP.PRODUCT_CODE) IN ('A14498','A14428','A22640') THEN
> 'Y' ELSE 'N' END) TAC_3
>
> FROM
>
> D_INSTALLATION DI,
>
> D_INSTALLATION_PRODUCT DIP
>
> WHERE
>
> DIP.INST_SEQUENCE_NO = DI.INST_SEQUENCE_NO AND
>
> DIP.BAC_WID = DI.BAC_WID
>
> GROUP BY DI.DISTRICT_CODE,DI.BILLING_ACCOUNT_NO,DI.INST_SEQUENCE_NO
>
> )
>
> GROUP BY DISTRICT_CODE,BILLING_ACCOUNT_NO)
>
> T1,
>
> D_BILLING_ACCOUNT DB
>
> WHERE
>
> DB.DISTRICT_CODE = T1.DISTRICT_CODE(+) AND
>
> DB.BILLING_ACCOUNT_NO = T1.BILLING_ACCOUNT_NO(+)