<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: PROC SQL SELECT DISTINCT in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386409#M92542</link>
    <description>&lt;P&gt;&lt;FONT color="#ff0000" size="7"&gt;&lt;STRONG&gt;Example data and desired output for that example starting data.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 08 Aug 2017 20:18:50 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2017-08-08T20:18:50Z</dc:date>
    <item>
      <title>PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386380#M92523</link>
      <description>&lt;P&gt;I'm attempting to use distinct for FLT.vehicle_no, but get the following from line 20:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;16 proc sql;&lt;BR /&gt;17 create table InstallDate as&lt;BR /&gt;18 SELECT&lt;BR /&gt;19 FLT.vehicle_header,&lt;BR /&gt;20 distinct(FLT.vehicle_no),&lt;BR /&gt;21 FLT.occur_date,&lt;BR /&gt;22 FLT.FAULT_CODE,&lt;BR /&gt;23 FLT.FAULT_DESCRIPTION,&lt;BR /&gt;24 datepart(min(FLT.occur_date)) as sw_install_date format date9.&lt;BR /&gt;25 /*min(FLT.occur_date) as sw_install_date format dtdate9.*/&lt;BR /&gt;26 FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT&lt;BR /&gt;27 WHERE&lt;BR /&gt;28 FLT.vehicle_header = 'NS' and&lt;BR /&gt;29 datepart(FLT.occur_date) between '01Sep2016'd and datetime()&lt;BR /&gt;30 /*FLT.occur_date between '25Jul2017:00:00'dt and datetime()*/&lt;BR /&gt;31 group by FLT.vehicle_no&lt;BR /&gt;32 ;&lt;BR /&gt;NOTE: No CMP or C functions found in library work.userfuncs.&lt;BR /&gt;ERROR: Function DISTINCT could not be located.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:27:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386380#M92523</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T19:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386382#M92525</link>
      <description>&lt;P&gt;remove the parenthesis around distinct. It's not a function&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:29:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386382#M92525</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-08-08T19:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386385#M92527</link>
      <description>&lt;P&gt;novinosrin,&lt;/P&gt;&lt;P&gt;Thanks for the quick response. I tried your suggestion and got the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;16 proc sql;&lt;BR /&gt;17 create table InstallDate as&lt;BR /&gt;18 SELECT&lt;BR /&gt;19 FLT.vehicle_header,&lt;BR /&gt;20 distinct FLT.vehicle_no,&lt;BR /&gt;___&lt;BR /&gt;22&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;ERROR 22-322: Syntax error, expecting one of the following: !, !!, &amp;amp;, (, *, **, +, ',', -, /, &amp;lt;, &amp;lt;=, &amp;lt;&amp;gt;, =, &amp;gt;, &amp;gt;=, ?, AND, BETWEEN, &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;CONTAINS, EQ, EQT, FROM, GE, GET, GT, GTT, LE, LET, LIKE, LT, LTT, NE, NET, OR, ^=, |, ||, ~=.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;21 FLT.occur_date,&lt;BR /&gt;22 FLT.FAULT_CODE,&lt;BR /&gt;23 FLT.FAULT_DESCRIPTION,&lt;BR /&gt;24 datepart(min(FLT.occur_date)) as sw_install_date format date9.&lt;BR /&gt;25 /*min(FLT.occur_date) as sw_install_date format dtdate9.*/&lt;BR /&gt;26 FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT&lt;BR /&gt;27 WHERE&lt;BR /&gt;28 FLT.vehicle_header = 'NS' and&lt;BR /&gt;29 datepart(FLT.occur_date) between '01Sep2016'd and datetime()&lt;BR /&gt;30 /*FLT.occur_date between '25Jul2017:00:00'dt and datetime()*/&lt;BR /&gt;31 group by FLT.vehicle_no&lt;BR /&gt;32 ;&lt;BR /&gt;NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.&lt;BR /&gt;33 quit;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:37:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386385#M92527</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T19:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386387#M92528</link>
      <description>&lt;P&gt;Distinct is used without parethasis, like:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;select distinct&amp;nbsp;FLT.vehicle_header,&amp;nbsp; FLT.vehicle_no, ...&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:45:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386387#M92528</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-08-08T19:45:38Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386390#M92531</link>
      <description>&lt;P&gt;Like&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/88384"&gt;@Shmuel&lt;/a&gt;&amp;nbsp;mentioned Distinct is a keyword that follows select statement "select clause" immediately. It picks unique combinations of columns that write in the select clause.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example- it should flow like&lt;/P&gt;&lt;P&gt;Select distinct var1, var2, var3..............&lt;/P&gt;&lt;P&gt;and not select var1 distinct..............&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:52:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386390#M92531</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-08-08T19:52:15Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386391#M92532</link>
      <description>&lt;P&gt;Thanks for the comment. It doesn't appear to work in this case. The indented code is below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
	create table InstallDate as
		SELECT
			FLT.vehicle_header,
			distinct FLT.vehicle_no,
			FLT.occur_date,
			FLT.FAULT_CODE,
			FLT.FAULT_DESCRIPTION,
			datepart(min(FLT.occur_date)) as sw_install_date format date9.
			/*min(FLT.occur_date) as sw_install_date format dtdate9.*/
		FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT
			WHERE 
				FLT.vehicle_header = 'NS' and
	datepart(FLT.occur_date) between '01Sep2016'd and datetime()
	/*FLT.occur_date between '25Jul2017:00:00'dt and datetime()*/
	group by FLT.vehicle_no
	;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Aug 2017 19:50:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386391#M92532</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T19:50:11Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386399#M92535</link>
      <description>&lt;P&gt;Does next code creates results you wnat ? If not please post an example of your data with the desired output.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
	create table InstallDate as
		SELECT  DISTINCT
			FLT.vehicle_header,
		        FLT.vehicle_no,
			FLT.occur_date,
			FLT.FAULT_CODE,
			FLT.FAULT_DESCRIPTION,
			datepart(min(FLT.occur_date)) as sw_install_date format date9.
			/*min(FLT.occur_date) as sw_install_date format dtdate9.*/
		FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT
			WHERE 
				FLT.vehicle_header = 'NS' and
	datepart(FLT.occur_date) between '01Sep2016'd and today()
	/*FLT.occur_date between '25Jul2017:00:00'dt and datetime()*/
	group by FLT.vehicle_no
	;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;PAY ATTENTION:&lt;/P&gt;
&lt;P&gt;1) to the usage of DISTINCT&lt;/P&gt;
&lt;P&gt;2) in the WHERE you should check same type data:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;not: &amp;nbsp;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;datepart&lt;/FONT&gt;(FLT.occur_date) between '01Sep2016'd and &lt;FONT color="#FF0000"&gt;datetime&lt;/FONT&gt;()&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I have changed the&amp;nbsp;&lt;STRONG&gt;datetime()&lt;/STRONG&gt; to&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;today()&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:05:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386399#M92535</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-08-08T20:05:45Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386402#M92537</link>
      <description>&lt;P&gt;SELECT DISTINCT will select distinct rows. It is not something you can apply only to some of the variables in the row.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;select distinct a,b,c,d from have ;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Perhaps you are confusing with the ability to COUNT(distinct ...)?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;select id
     , count(distinct date) as n_dates
from have
group by 1
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Or perhaps you wanted to GROUP BY that variable?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;create table max_per_day as
  select id, date, max(amount) as max_amount
  from have
  group by 1,2
;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:13:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386402#M92537</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-08-08T20:13:43Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386408#M92541</link>
      <description>&lt;P&gt;Thanks for your comments, however, the code below generates nearly 10M rows of data where the unique vehicle_no should be ~40. 'distinct' doesn't appear to be operating on vehicle_no.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
	create table InstallDate as
		SELECT distinct FLT.vehicle_no,
			FLT.vehicle_header,
			FLT.occur_date,
			FLT.FAULT_CODE,
			FLT.FAULT_DESCRIPTION,
			datepart(min(FLT.occur_date)) as sw_install_date format date9.
			/*min(FLT.occur_date) as sw_install_date format dtdate9.*/
		FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT
			WHERE 
				FLT.vehicle_header = 'NS' and
	datepart(FLT.occur_date) between '01Sep2016'd and datetime()
	/*FLT.occur_date between '25Jul2017:00:00'dt and datetime()*/
	group by FLT.vehicle_no
	;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:17:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386408#M92541</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T20:17:51Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386409#M92542</link>
      <description>&lt;P&gt;&lt;FONT color="#ff0000" size="7"&gt;&lt;STRONG&gt;Example data and desired output for that example starting data.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:18:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386409#M92542</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-08-08T20:18:50Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386413#M92544</link>
      <description>&lt;P&gt;If you only want one observation per VEHICLE_NO then tell SQL that.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table InstallDate as
  SELECT FLT.vehicle_no,
       , min(FLT.occur_date) as sw_install_date format dtdate9
  FROM RMDEOAP.GETS_DW_EOA_FAULTS FLT
  WHERE FLT.vehicle_header = 'NS'
    and datepart(FLT.occur_date) between '01Sep2016'd and today()
  group by FLT.vehicle_no
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can add other variables, but if they are not 1 to 1 with VEHICLE_NO then they will cause you to get more observations.&lt;/P&gt;
&lt;P&gt;In particular if you add variables that are neither listed in the GROUP BY clause or are aggregate functions like MIN() then SAS will happlily remerge your aggregate variables back onto all of the input data and return that.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:29:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386413#M92544</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-08-08T20:29:14Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386415#M92545</link>
      <description>&lt;P&gt;Hi Ballardw,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Excellent comment.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have table with var1, var2, var3, var4, var5.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var1 &amp;amp; var3 have limits and var3 has the minimum value output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;grouped by var2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var2 is unique/distinct so that the minimum value of var3 is in reference to each var2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope that is more clear.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 20:34:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386415#M92545</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T20:34:58Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386418#M92547</link>
      <description>Thanks Tom, this is very helpful and may be a partial solution.&lt;BR /&gt;capam</description>
      <pubDate>Tue, 08 Aug 2017 20:48:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386418#M92547</guid>
      <dc:creator>capam</dc:creator>
      <dc:date>2017-08-08T20:48:40Z</dc:date>
    </item>
    <item>
      <title>Re: PROC SQL SELECT DISTINCT</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386440#M92552</link>
      <description>&lt;P&gt;An example data set works best. Without values to examine and results to see if logic is correct it is very hard to diagnose or suggest data manipulation techniques.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instructions here: &lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt; will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the {i} icon or attached as text to show exactly what you have and that we can test code against.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You only need to provide enough variables and values to demonstrate the cases of operations you need. Best is to then provide a data step with the desired result.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Aug 2017 22:14:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-SQL-SELECT-DISTINCT/m-p/386440#M92552</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-08-08T22:14:29Z</dc:date>
    </item>
  </channel>
</rss>

