Home  |  Forums  |  914 Info  |  Blogs
 
914World.com - The fastest growing online 914 community!
 
Porsche, and the Porsche crest are registered trademarks of Dr. Ing. h.c. F. Porsche AG. This site is not affiliated with Porsche in any way.
Its only purpose is to provide an online forum for car enthusiasts. All other trademarks are property of their respective owners.
 

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> OT: need SQL help, asking the gurus ...
SirAndy
post Jul 22 2004, 12:30 PM
Post #1


Resident German
*************************

Group: Admin
Posts: 41,640
Joined: 21-January 03
From: Oakland, Kalifornia
Member No.: 179
Region Association: Northern California



ok, here's the problem:

let's say i have a table with 2 rows like the example below. in the second row, i have a integer status value (iStatus). i need a query that allows me to find the value that occurs the most in the table, in the example below, that would be "3". i'm not interested in how many 3s there are, all i need is to find out which iStatus value shows up the most in the table ...

(IMG:style_emoticons/default/pray.gif)


Attached image(s)
Attached Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
lapuwali
post Jul 22 2004, 12:36 PM
Post #2


Not another one!
****

Group: Benefactors
Posts: 4,526
Joined: 1-March 04
From: San Mateo, CA
Member No.: 1,743



Oracle, MySQL, SQLServer, DB2, etc? It will make a difference. There is no single "SQL".

Just off the top of by non-guru head, I'd say you're looking at using MAX(COUNT(*)), probably with a sub-select, but I can't give you exact syntax w/o knowing which SQL, and I only know MySQL and Oracle (and I don't know Oracle well).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SirAndy
post Jul 22 2004, 12:40 PM
Post #3


Resident German
*************************

Group: Admin
Posts: 41,640
Joined: 21-January 03
From: Oakland, Kalifornia
Member No.: 179
Region Association: Northern California



QUOTE(lapuwali @ Jul 22 2004, 11:36 AM)
Oracle, MySQL, SQLServer, DB2, etc? It will make a difference. There is no single "SQL".

Just off the top of by non-guru head, I'd say you're looking at using MAX(COUNT(*)), probably with a sub-select, but I can't give you exact syntax w/o knowing which SQL, and I only know MySQL and Oracle (and I don't know Oracle well).

count(*) won't work. as i said, i don't need to know how MANY 3s there are ...

just ANSI SQL, the query should be easy enough to run anywhere, i'm hoping i don't need some crazy syntax for what i want.

Andy
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
eeyore
post Jul 22 2004, 01:18 PM
Post #4


Senior Member
***

Group: Members
Posts: 889
Joined: 8-January 04
From: meridian, id
Member No.: 1,533
Region Association: None



select top 1 count(iStatus) as StatCount, sDescription from {tablename} group by sDescription
order by StatCount

You'll need to replace "{tablename}" with the actual name
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SirAndy
post Jul 22 2004, 01:28 PM
Post #5


Resident German
*************************

Group: Admin
Posts: 41,640
Joined: 21-January 03
From: Oakland, Kalifornia
Member No.: 179
Region Association: Northern California



QUOTE(Cloudbuster @ Jul 22 2004, 12:18 PM)
select top 1 count(iStatus) as StatCount, sDescription from {tablename} group by sDescription
order by StatCount

nope, that just returns the first row in the table ...


Attached image(s)
Attached Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Deluxe247
post Jul 22 2004, 01:28 PM
Post #6


Newbie
*

Group: Members
Posts: 6
Joined: 14-March 04
From: Centennial, CO
Member No.: 1,792



To get the mode do this:

SELECT TOP 1 COUNT(*) AS 'Number of repeats', rowName AS Number
FROM dbo.tblName
GROUP BY rowName
ORDER BY COUNT(*) DESC

It will return how many times the number occured and which number. You can then pull whatever you want from the result; the actual number.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SirAndy
post Jul 22 2004, 01:38 PM
Post #7


Resident German
*************************

Group: Admin
Posts: 41,640
Joined: 21-January 03
From: Oakland, Kalifornia
Member No.: 179
Region Association: Northern California



QUOTE(Deluxe247 @ Jul 22 2004, 12:28 PM)
To get the mode do this:

SELECT TOP 1 COUNT(*) AS 'Number of repeats', rowName AS Number
FROM dbo.tblName
GROUP BY rowName
ORDER BY COUNT(*) DESC

It will return how many times the number occured and which number. You can then pull whatever you want from the result; the actual number.

perfect! that worked ...

(IMG:style_emoticons/default/pray.gif) thank you very much, you just saved me a ton of work!

next (IMG:style_emoticons/default/beer3.gif) will be on me,
Andy
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vortrex
post Jul 22 2004, 01:41 PM
Post #8


Senior Member
***

Group: Members
Posts: 1,687
Joined: 24-December 02
From: SF, CA
Member No.: 4
Region Association: None



make a text file.

cat filename | cut -f2 -d" " | sort -rn | uniq | head -1
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SirAndy
post Jul 22 2004, 02:02 PM
Post #9


Resident German
*************************

Group: Admin
Posts: 41,640
Joined: 21-January 03
From: Oakland, Kalifornia
Member No.: 179
Region Association: Northern California



QUOTE(vortrex @ Jul 22 2004, 12:41 PM)
make a text file.
cat filename | cut -f2 -d" " | sort -rn | uniq | head -1

it'll be part of a humongous script that'll migrate data from one DB into another.
no time and patience to manually fiddle with text files.

i'm hoping to run this overnight and the new and oh so much better database will be ready to go in the morning ...
(IMG:style_emoticons/default/biggrin.gif) Andy
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 17th May 2024 - 07:49 AM