home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / database / ingres / 2080 < prev    next >
Encoding:
Text File  |  1992-12-13  |  1.9 KB  |  50 lines

  1. Newsgroups: comp.databases.ingres
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!darwin.sura.net!uvaarpa!cv3.cv.nrao.edu!mail-to-news-gateway
  3. From: "Anthony J. Rzepela" <rzepela@hal.hahnemann.edu>
  4. Subject: Re: Need help with GROUP BY clause
  5. Message-ID: <00964FAB.88C1C2C0.17571@hal.hahnemann.edu>
  6. Sender: root@nrao.edu (Operator)
  7. Organization: National Radio Astronomy Observatory
  8. Date: Sat, 12 Dec 1992 18:41:05 GMT
  9. Lines: 39
  10.  
  11.  In article <2953@dwrsun4.UUCP> perl@dwrsun4.UUCP (Robert Perlberg) writes
  12.  about needing to group his securites by year, and then performing
  13.  a summary function (totalling some dollar amounts) on another field. 
  14.  
  15.  He was dismayed because GROUP BY was insufficient, and was worried that
  16.  he would havee to go to some non-SQL forum.  Well, with *SOME* ongoing
  17.  work required (updateing the SQL statement every year) one can avoid
  18.  dummy fields, auxiliary tables, and the like. 
  19.  
  20.  One can use summary functions in the select-list clause of subqueries in
  21.  a UNION query.  
  22.  
  23.  For example, the following query:
  24.  
  25.  
  26.  select year = 1990, total_number_studies = count(study_date)
  27.  from   studies
  28.  where  study_date > '31-dec-1989' and study_date < '1-jan-1991'
  29.  
  30.  union
  31.  
  32.  select year = 1989, total_number_studies = count(study_date)
  33.  from   studies
  34.  where  study_date > '31-dec-1988' and study_date < '1-jan-1990'
  35.  
  36.  produces a two-line result, with the year, and summary function, in each row. 
  37.  UNION queries have their own behaviour peculiarities, and there are other 
  38.  shortcomings to this method which should be fairly obvious, but it IS a 
  39.  short term-solution to doing it in pure SQL.  
  40.  
  41.  NB: for an ongoing thing, one could use the REPORT WRITER to automatically 
  42.  generate an SQL statement like the one above which would produce no 
  43.  "zero" rows, and would not require the ongoing maintenance.   In *ANY*
  44.  case, long story short is that it *CAN* be done in SQL. 
  45.  
  46.  
  47.  ---------------------------------------
  48.  Tony
  49.  
  50.