From 66eaefa46deceffb0b54ce580494bf1ab34bd3b2 Mon Sep 17 00:00:00 2001 From: Kerensa Wong Date: Thu, 13 Nov 2025 20:17:09 -0500 Subject: [PATCH] SQL Assignment 1 submission --- ..._Assignment1_Section1_LogicalDataModel.png | Bin 0 -> 13801 bytes .../assignments/Cohort_8/assignment1.sql | 72 ++++++++++++++---- 2 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 02_activities/assignments/Cohort_8/SQL_Assignment1_Section1_LogicalDataModel.png diff --git a/02_activities/assignments/Cohort_8/SQL_Assignment1_Section1_LogicalDataModel.png b/02_activities/assignments/Cohort_8/SQL_Assignment1_Section1_LogicalDataModel.png new file mode 100644 index 0000000000000000000000000000000000000000..148f0566db640d328b42de5c74bf35518d6a81aa GIT binary patch literal 13801 zcmdse2UOF`)-N5Es;Ed;5CI`{=}kI^CelGlfB*rKKnT5y3W9c8@RpVe#ToiDczAdeYO0F2 zf!|fY-@a2Mz)zm``DHx3b8aXlBNWWj7U~4SV;55RIbs*&w@0|5*o73?1qGFyAl4`( z0uBrTI@k^ZKc3J;ctf3>!0dv`H+cDhDNaKu+y>#{3JkUMfFA<<09i;L7y%O^!as+e zBEnn%<)*W<6T}c=r4B{m)(eU93W)$@PIXm1O$~NI1z_w1b%X%FR3O%l2;34IB-n!& ziU8OJ#drmI#Q>6mJrV%}n3M&CfwOo;g@nX;1%+|4{4TVzkQlG<5BYS#wqPXmm*a5v zafcvXp}^&ST=isQ+=Qz&*a`BJEb#N{RtTgG1o@K$oFT|Aq{PmD6JW*t5mK;$g6)uC z81MlO288;t;Vs~~K*!6WHpfe?kT-RVs^b3fPrApHu;&u2V&Oe6vU?Dq?1zfPYp z!8{cpPPn%|dB@{(0JZtwU;B^OK>ovM{!g|uFm$*ns^y`}?=?iqQu8faje23#~(d@*9QUIa-1Oczv#jV z4ScMEcK_HI$N8VY1n?ZA{O^UwdBcBFhQCArIQPeE{SyKfa5tD0;4cJ4oB*|xw}H9? zLp$8?2S66iNT@Z$!U^JzGwq)|fMmb0olt)vSs_p;dkesHt&vb?6wYt`=PLoFut0e^ z1HR_355wKze~`Y2{fGK;qE~+(eYx=`efg8ILTmtcd2G7~B+4FPhk%2flzykm|IwU( z=g~kQ09*cH#10S?%InzogWXVwzcO*$K>#}-z`rtZKq(Mz$RB z{~_KdI`H?gLV;rk_6y*DGB;PCj&b})#tHbMUvnNHlLUgJkRr?zNaLODd2O8#9@h3? zB#IXdha*sc2SUItaLEza39x5?(FtOUi{{P#YrDgo*RSor_F{OKfFKF**1!ctFC zrC$wI;AGj~2sywh;{4(-$Q@((OF9B1qPWNYB}e_M6!s^;3J50z5aGCQz#o1#)|6B9o6M&9!75%eC{uQn#w7(Io ze~ydnN`mZSV(j8df3nQK2fVfjIO;fI5)=l&|9=3t;0chw)IletU+wsW_TP!O5YUEE z{ufpAkGVgzCw@)re$1XUM1D>jFTgdLe&&GgZ;W^F@Tl?B6mRNz;xBzdw1M=uNY|42 zDrg;$H_)~YV25X?xWe|RltS-aB^J=gcyXEUK}XANLcg@w1Xe?VEv1j)8fruo!3Q1Z zzO#?qpr+B=Ot&)sz@6QolkV^Tb$sjaYl59^itCE&*XKg6+cQOWwyX8qBaX#K$(1`x z#zJ=0Zi@p)h~CY{L&Vy}XTrAEK#1y(9~%93K8Zr;vneF*zE^BPD_6Qn8 zz9c{qH+%pF2L6w92apWD!s_wFm4<_ryE`v} zDX+&#>}rX9z6YVzYJT!v<2?c05WBAb;d<+QGbsxXa;0WArQ%?vj^nafqrV@1FEHej z-k-~uPYYrGjg;BbvUYzVzi-@U)hu&{d-idp?6+Nc<*jaYzIwfn0l+SOq%6L-Kwa~v zO)eAG*}RXG+2^c3#A33ZGra_6)*@n(1FB)8ace8(-7*j3Clbs8w~uxvBB#Tq9Evrg~`Q@-}X_f^*h;Qd}w~@wI)KP$J|A)tcGn}bz0sz^D&II zbJ(-gLmKEo;$&)(fR&6auRSF}xLqJ2EV^u~Wa|LjIw4V3bo?nGLRE56D{mmi8G;@xz)|y3bR3_+i(&DCf; zXYiBIN*QW+K6xTOfCCB3k&JR7(HpCXCqRGr;>O$ISx+`OV!ntJm<08Ou=qbiR}qsp zneaMF&?eHa4{FOEp=d_Ke6f{m14%El>ne6v1YOMnv?b;<@7^!c+N6DE_N*6`=R>19 zoZbU}BmrIM_3W=UuDF1x5K|$!(331$Kaf@M8#;>%oj4IU5V1YtxzMq&FF-kw;o_3o&!B349tSwT<4PQ2jKM>h(3Dy#m8Ppgl*? z6eYXhXy&fa=5jUMclildHzC)oW~Sz-3w}->`BwYONW-qo_CZQ>WWL~8#q0^$i3+>7#2bc`m#wI$@@rCo+mAdO0+x@ zxe_ix>C(d8tw3;(i63a-_&_t5C;CG=T^{q*VKst$nu08$=ZeqJ+~?6}yzots(uI2YrWYwV|@LJrCgr%heVV%N2cBV>sel z)aI%D=9f#Wov2KuP{truDg;AizsF~U#Eo^YrU8(Va-OnKz zuOeHcP$}G&Nv}0ig*~Q0ni)-2mWt)ZG0OMGg=NrP>WSm?Zy8J&s`1}EBD|y1s`)%g zq{%gEj?fs}S`#$=bacU|J*cyy({=>US^c~t3|gG}ft^pu$U2OuEsi!@v)J$Pxis1+ z?`%_D&}s`A7Cw+TV-{sLf5wc6Roo<1*+;Xig0HvB+c0@9B)sIgEL_oCA6_XlS;xZ3 zr!W*`rg*8BxNUfI*e(@zJAi-Bb*hx&?y{JUGrF9s&+z_^7f~yUc}@_^XI&1g z=1vv$x*}c8Nbj|A5v0rEB&jT?yKLKKT5&3`e&L#tEbSVW8Q+;+7_7RzaA1%FR$~mp zWU@&=LHg>~K)$6t@1`iR1K-jW?(Ry`Z;yp(eyTK|@%x%b8AoYWEvvUjM&ZO9GdtCp z_m(Z-V01z&Lh6no9;eU8Jj$xmbq*eLNLu)T!hZ9b-$fGOob$mU$+ZLO zl75*r1nw*pVqD3e+D7hHFp1`Ah^ClLj78*O(CeM-B^1t1Z|-|oiJ612Q@Ko391dL( zuYsKFIo?~Zy=ILVDZ!*r(Tbz&dStv; zudQQpA3MC_F^!eYr1M3|FW3`u^){s!=q1ux@|7b-LoVGfCn!=GeJz9EO(Pv# z<1+Qm=5q1@=hP>U39~j(0A4SRq?FRlH!L$vvkGw$%(|rcCE7s-s8Hl#;B1?Jv4 z)XF~6M$7R*6tZfFs+vXFHyTLv$?v`3JnJ+=eVg!_2CA}IAZI&W+I@S-|As%6?H$G$ zeq*Qy0e5_jd zk+aU}*?#xA7I;S`8~m-;+=_3TaD3C(+&pDcW^;ZlF$2DL=4gZ)c4QZ$9w{Lsz=hX2 ziY?eJ^e~gd#u|&{nD(2RQy*=y_0D9F^*HHu0U`6j0&664QY2rowlH~;Zp4K*h=P+G zRy+Oh`GylooA{Szj9k1ZmqQ)(+~ni)ecsf31uzw_IKqY+JFnaQ3=^D0IlS~}7;OmF zW5Ta`*C5SRuPSMiwf7DI11EU|bPO*^*-J#O=wNL+leDYsW}UpoJXkZ2;&a|>ZNJUi zBlL-e#FospzHjCT@D_UN=-<)P@`=0Y(egTa8MJbnM22K@0G^D%x?19!Qd^R`Wwl@E zhtAa8aTCK+*-+7@si{bJiUKZ79qSb3RXpR{Mo6(<(p&9ks~j$-1v}poEswk6Zo_K9 zWIiEHU<`*BM)p7CH<+2eady1c*|<2vE3N6iUXeN<6xL^2Hxe((lvr#4cv?9Ji-Ewz z2VP7sPRG#Yv{lDguEmP~#^%y(Gij>+D$l(#a&F4@iGQf?UK=);Qgg3kVKdH-A$p}* zSF27e|8v=H1?_Tg6z_;~*V8MI-TdXY))0%mThO9FX%JiMxx0o1(MRTedljhmWgxe{ zPb9+kE@Q()l;#PAil)T@Hecz7M96Wd01JxKvEHm%iYs zyB8|@F7h>ZzM}=Y7J-KLWkXnU^%^5Q-SKb1Z!PEhG|`l;_o)y~w9s1I@%@P0_}a;} z*(bt$j}M#g&D~wmOAt)7E%qU(iBwFE_j=cqv+X&MUAK|&9r462coKWwe3-aHbJ_SP79xEdoaB=W!C6s)x0tPP-eqeo>JPVQ_2c5o4Az|2T55ewJ$3&70fx zit#=WrN&1Tu0j4G^Qlcdw(DIjmw)Rr8R$(LcdAQK&sIhA1?*vR(d1W3wGg!Oiu7Mx zbQ2Jljnk7!PCI?@#Jjq$Rl%@&4b)M@E5YBP)biP`EHutBEc=bnne{4y#HFxTYWl6n zw}}mC@+hjck>b8lZwsdV#gK0~F}dRe!30%Mvw{$NslFS0JS(iVluc25=Ss*aeRt2& z+2q>UDWsmBqpkimN>xoH-m-czx zlN{%*5Q(CN=MYThi5Ht4AA|Bu`R|_e0{l(Qv*EbPO1TbODl%Np5~lpCcOT=MsOp1M)u$R&{^o;p{=M z$eZrTdIcWAolX*clvUpWPkb-B~g< zNP4W)Y%T?Yn~ogXV=jYO?l||9b>PxiA2$X_1T(JM4hfFaH~$1&Ab*t8b+ZR|Nydr- z>;fRPIXvSzeJCIoso;|u1`Hrh{TQ?O4Qk*-Dx1r$qH(y5YNU}4mvOJwCifM7kJz12 zsKjIF%6Fz`xOE~gY9u9bAibg7TWtac(k1wvpN4VOG?RN<0I4l7V5YJ+s2>K-?W}5N zmj=SUdn74e{4TfHQ~3TnNUVy8-%~RNIrDWuH)jfr+_GSki9YZOF+(*k7(oFXyR;NK~77c z=sB7PihuQ&&ygL9?>#Y~Y7M>dUmG=9*geHqCf&AzQ438o>%F%$+6C_hjAS@1MYjcM z3rd={1}#!?Jr`Ubpoo(}{+(Ws*;Zh0al^jD=VnjiagnOfSOI6xxLU!P-H%=youYlX zeo6id5w8*QFVf*>KmoY2*U2J}=1>#+FipsB?t}jZb8#;PZX{V=PdO<$0&3uJaYAFtMP@kEM4hTxc;&=4rF?+VJ^cJ(kA{b=lfve zH#fBa>$A1Q7HiS@4M@Kyk*Sobbj-+^RG{9T4`qum$|hx2G~61s&uhYUa{5;4R#R~O zA9)Tr->Ju5#kOawGu+O1ou&Bv?LvKj;WExow5O>F(zYqI%ALS3A33>|b_ zyE{YHR7=EBv(roE-C8;k7R*e{o|8eSwksj$VHn4BLQ1jAxTc!YD5`#`40C4S+TJGq zBuA<*GPmo-;GG!qkz|i?%CC-c{h0Nd^Tz_i1Z?c-g3xiwLaz>YgNxg_F83l99`4HVBamVSfCgJbP}%8Eds3;0od3p zm(vW4&EOCwgGq&>Ya@lZFT#C;57t{*UQR{IHe8ZBBXhLbcR!l^^PRe#PaYQdfm@4% z>et+G&5SQno>yaqNWQ7C_z6pI_9&F~eNbUBBY#i>m9XFD2Nlc$p4^@H_g^Fj%;^jkC%14@?jt|ysAS< zWglJ@rZ`X40JQZ)jN!3my1FuTc#QsdsL!#BF4q^38bI5u`L>Sn_v&$P?i#Un&PBIg zHI5613ld<3i2HAz*jhlQ9aYR3K15P5j_zikS-R!_{b+{|T}8Q|$LR?)kuC=MPtqXr zrle{G<-k0%kT5JVWdrDhUKsBY?=2c`5_gDxS@0W4FR^jggk7p1{YN` zsn$2P82!9@M4W1gRmo$_r8Sxv&1hMYT=uLe35!|26p5_$hQG`Esur2|9oMgz`>hzm z*NE;(AiSK>)qusEr!CtLrRbP(o7E*2A@=0dP0nAz>4(V~{%EfEAJ3m>x?LQRNd67b z*lQ%=64}yy(9BkGY!$Dd+k0v`$Gx7b6B;l0cBAn1TK7!aE8q!WwI=24nKI@jc9zIt ze!QMomi@IVm+_V;>lZYisC}?YQxy=k^dcEt2SFW^c8yM#bQ^eC10GPr`eQ_(jBCA=|L8h0KP8b4R+k!&*T%gIAZd9GQLT4*zj@VLX5)*BmUL-&j25D1P|yO0b6D^O*1nTz`X`1^NcX-8iNleC2V&!KYQ;Q5Az! zDP+4ntNRt&`C^HMyxBW4uT_+FWtcGTEyXF}U&~XEoXVsg)=tML1-N}w>YCxwoj^9% zNI^U^ncgr*^kUny%H1Ud6`dZt(L zyD&%2oT_1cNyl3*OL=4zOQnTRxi{Yd0j!=buV79L7YkcW5~@Wn&XEtfyorh2`_u}x zZt5STE17!0!7_VL-+CoN`(@KLDc!230-m0P))f5^WZf_U5FR_vB#_tvfv=eYx`GR{ zhGz3p%C~Srl%QY=^$Xics*imgk*= zj%%Cv6CF(IMm+b~VDET7rGj=qH%}>ny>7y=XrbSjQzna<+j)JQ&HM_p zEF;Cd$1#LCcrQc|zO*e2<8sp*1Trk2Rc(B^I%?trXAYd?ebw5}HPc3;D|o0+TTpv- ztmkty@~kdbPw+Mn&2-X2@^y@vYs@*#3$-RNLM5%2ZX&dN78%8SqnqvUd<~l8W53Xl z@!}zL2+R3ypIyECWL1}FcY1F;RQqadqab_Xd(&BTKA%ypN{YL-&QM*biwPOlX_9s#LWwBX^Er16HG&*6F#E z1Xb6%jm@s_%7nUS_$Q+|^Cb;t`q#-p2;vgI%U`Jib`|!4xcb!h?bp=rhj!~xa!id! z+oOHJ#GCX-qB^`s`4&gNtxvW;ekOBpj`Nnu1I3qqav!2u+hz%v{dYfen!6O-t$crr z7(S|Wt7s5q{&euIXy)OCrf)5L{!v=8N1I5q$yQ4<=AEPYttWzwdR=n@;Q- ze5v&9{-PqguT#7GB|N-1G%?PMT0u}l*TT2HqnEG*q_BqnD(h}#K?Q@N=;PA!QHJbp zAc$|LS^}SP)V%L#6|9ARgtlNTa6kPi->phB&V?IM0z$#DGdI>L*#n468u$B)FQ#@L zecNeF_22JHz4nfO#(&w-f?KMxdE){H$?n0#cXMCxhEVFB#%=BKp3|zEshR}=TZ03M zkWfA@<1oCMV%fcqiCBr-gYV}sstZOAZ}*d=%7fV{Y8G1KUp|jiw~3;`c38ZpH#D%= zHN>mSd&PaEo4T)e!w1|aXO*CH^x_dy7*>#oWo=*Pp&&_&9fHm|i>a`)Ur7B+ONIv1 zo~n#-TaBO;OtGqJVLHLZ?^76BgwBuG6n_cV0BvtFR`~u^v{4P+5#O+xwOQSG1oB&P zP33N=VZ=~Q7#tkV%BFq;S~MJ6`%a+^^YDjOHE%`@+s!KzDiMB(nGM{5M}TADIhx@M z;F3v!Q*8lHue}d^N@&>YL}UZ*QM=uH<}mIL&hUj0(&^DR8meoK2S2GAA0EUT=?W`7Waoz zPf=PV*c<-7`g9$6nVM(4Z1RFD?sw}nRAp9zA3TX$<(QG5;M8p#S$TET&r4_HsNyq{ z>S5w(d2mJN;5F;UAtRCVY2M{vF~MbzII zzF*3~h8TyQ9x7T<`+)YSEl8a(7kE+CN}kg?0}qov&7(4o|9m37l;*A0_8tXNalGbI z2Qs-Xx9UO|mC;P0GIP0)Vr2J}PpeL-?{etPG?q_UM-n${{LKPjpTDH#TW?ign!h@! zY0T7VJ$|laR;LC!r$>942z|EtCTZ}Qxvu3=NfP|qu}bEQUQk`nOcn9yta=?!jFj6E zXMC#{O=<|-|5cmP72&4)O9X}p!~L{z9;m2pcP2EBiN1OnFK^zQymDW^gnkmw`@*IE zaJeIBkAtklNTz~WzrwyN-<*ECaqn z3FZ^ikao0Gzl2FB!hd1rZL)o;V&v)e!oK6_^woXE>?Cc`MSmm`yTY{im)y9*ZO1z!6-=}+ zeMpYBjGrRmZ;qytp7Xb!28GBpi~bg{l>~f$&2Hg0-_Y}#z-N%e9#+Zo`}ZZUsxBgz zOMrM~WOYWxJaT8sEnjatTK5)YO%o^{{X=QXgXxCC#aDt?-AJ}4Lp%i}p9Otdf7MEn zVVSOzRJMHWlEYY%8thTocOK8Ya8SF>fha|TvZZ#$`j~Q+oFNeI$huw?;^7ezCN-awxSyP(s*7*&e9Ft$go}PoN_ItVa}5DzIElQ zo_&560l(Np30Ps>g+ZHG+MCK{{d3zWybe?r=Aj~e*KmT6nkDhPAL&~g%ud^wuGVFm z>tP5rxf!AWadg$4vCPzv8?V7^=z;rb0k7Se+F!(5r*aY2*=}}x&JLtaOZlRxIFU;* zmxA|BS3a_DhE%^Vh0}Y1v|_tFs5fK(l;#BzviEoM9E;Gr|_jyij4AaBZ8vk}R(?2yX5d6t^J_I3LH8x^)m8As;|xZONpo>76vH_9^*4w8jfBly|#T? z0-SC044=oNqA!!B$>h7K#PAiD()r-+c0BAWs>?5d9nI*(o6hAB35T&R^@&rzIz0`G z;*!jUTXf%E#g)qIz1-ppPuOI87ou(|^K(Vg2HsM&3UvI2!WZATsm_Cn&QZGh5W z1v!81@kbp)e*ih32$e{WN}frz{I~fV`>qAwH1sh|DY<*246|llmMIm#p@k7ZSa4Af z!Cz`&Y8=}j0dhLgOV{jnMuBwkh`F)AFBs@eFp$TTAHaaL&p*;)prIL_mL2mFUE5}ZL0 Z;+0jryd&5DNFJczsVQkG7Rg)Q{Vy#21APDh literal 0 HcmV?d00001 diff --git a/02_activities/assignments/Cohort_8/assignment1.sql b/02_activities/assignments/Cohort_8/assignment1.sql index c992e3205..a6bb084ea 100644 --- a/02_activities/assignments/Cohort_8/assignment1.sql +++ b/02_activities/assignments/Cohort_8/assignment1.sql @@ -4,17 +4,20 @@ --SELECT /* 1. Write a query that returns everything in the customer table. */ - +SELECT * from customer; /* 2. Write a query that displays all of the columns and 10 rows from the cus- tomer table, sorted by customer_last_name, then customer_first_ name. */ - +SELECT * from customer +order by customer_last_name, customer_first_name +LIMIT 10; --WHERE /* 1. Write a query that returns all customer purchases of product IDs 4 and 9. */ - +SELECT * from customer_purchases +WHERE product_id = 4 or product_id = 9; /*2. Write a query that returns all customer purchases and a new calculated column 'price' (quantity * cost_to_customer_per_qty), @@ -23,10 +26,14 @@ filtered by customer IDs between 8 and 10 (inclusive) using either: 2. one condition using BETWEEN */ -- option 1 - +SELECT *, (quantity * cost_to_customer_per_qty) as price +from customer_purchases +where customer_id >=8 and customer_id <=10; -- option 2 - +SELECT *, (quantity * cost_to_customer_per_qty) as price +from customer_purchases +WHERE customer_id BETWEEN 8 and 10; --CASE @@ -34,19 +41,35 @@ filtered by customer IDs between 8 and 10 (inclusive) using either: Using the product table, write a query that outputs the product_id and product_name columns and add a column called prod_qty_type_condensed that displays the word “unit” if the product_qty_type is “unit,” and otherwise displays the word “bulk.” */ - - +SELECT product_id, product_name, + CASE + WHEN product_qty_type = 'unit' then 'unit' + ELSE 'bulk' + END as prod_qty_type_condensed +from product; /* 2. We want to flag all of the different types of pepper products that are sold at the market. add a column to the previous query called pepper_flag that outputs a 1 if the product_name contains the word “pepper” (regardless of capitalization), and otherwise outputs 0. */ - +SELECT product_id, product_name, + CASE + WHEN product_qty_type = 'unit' then 'unit' + ELSE 'bulk' + END as prod_qty_type_condensed, + + CASE + WHEN lower(product_name) like '%pepper%' then 1 + else 0 + end as pepper_flag +FROM product; --JOIN /* 1. Write a query that INNER JOINs the vendor table to the vendor_booth_assignments table on the vendor_id field they both have in common, and sorts the result by vendor_name, then market_date. */ - +SELECT * from vendor +inner join vendor_booth_assignments on vendor.vendor_id = vendor_booth_assignments.vendor_id +order by vendor_name, market_date; @@ -55,7 +78,9 @@ vendor_id field they both have in common, and sorts the result by vendor_name, t -- AGGREGATE /* 1. Write a query that determines how many times each vendor has rented a booth at the farmer’s market by counting the vendor booth assignments per vendor_id. */ - +SELECT vendor_id, count(*) as booth_rentals_count +FROM vendor_booth_assignments +group by vendor_id; /* 2. The Farmer’s Market Customer Appreciation Committee wants to give a bumper @@ -64,7 +89,13 @@ of customers for them to give stickers to, sorted by last name, then first name. HINT: This query requires you to join two tables, use an aggregate function, and use the HAVING keyword. */ - +SELECT c.customer_id, c.customer_first_name, c.customer_last_name, + sum(cp.quantity * cp.cost_to_customer_per_qty) as total_spent +FROM customer as c +inner join customer_purchases as cp on c.customer_id = cp.customer_id +group by c.customer_id +HAVING total_spent > 2000 +order by c.customer_last_name, c.customer_first_name; --Temp Table /* 1. Insert the original vendor table into a temp.new_vendor and then add a 10th vendor: @@ -77,6 +108,13 @@ When inserting the new vendor, you need to appropriately align the columns to be -> To insert the new row use VALUES, specifying the value you want for each column: VALUES(col1,col2,col3,col4,col5) */ +DROP TABLE IF EXISTS temp.new_vendor; +--Create the temp TABLE +CREATE TABLE temp.new_vendor as +SELECT * from vendor; +--Insert the new vendor +INSERT INTO temp.new_vendor(vendor_id, vendor_name, vendor_type, vendor_owner_first_name, vendor_owner_last_name) +VALUES (10, 'Thomass Superfood Store', 'Fresh Focused', 'Thomas', 'Rosenthal'); @@ -85,7 +123,10 @@ VALUES(col1,col2,col3,col4,col5) HINT: you might need to search for strfrtime modifers sqlite on the web to know what the modifers for month and year are! */ - +SELECT customer_id, + strftime('%m', market_date) as month, + strftime('%Y',market_date) as year +FROM customer_purchases; /* 2. Using the previous query as a base, determine how much money each customer spent in April 2022. @@ -93,4 +134,9 @@ Remember that money spent is quantity*cost_to_customer_per_qty. HINTS: you will need to AGGREGATE, GROUP BY, and filter... but remember, STRFTIME returns a STRING for your WHERE statement!! */ - +SELECT customer_id, sum(quantity * cost_to_customer_per_qty) as total_spent +FROM customer_purchases +where strftime('%m', market_date) = '04' AND + strftime('%Y', market_date) = '2022' +group by customer_id +HAVING total_spent > 0;