1

I have a table with 3 columns.

ORDER CATEGORY
NAV_PER_SHARE
Number_OUTSTANDING_SHARES

Now:

SELECT ORDER_CATEGORY, SUM(OUTSTANDING_SHARES) GROUP BY ORDER_CATEGORY , it runs fine

But:

SELECT ORDER_CATEGORY, NAV_PER_SHARE * SUM(OUTSTANDING_SHARES) GROUP BY ORDER_CATEGORY , it says : Not a group by expression .

What am I missing?

Victor
  • 16,609
  • 71
  • 229
  • 409
  • Possible duplicate of [ORA-00979 not a group by expression](https://stackoverflow.com/questions/1520608/ora-00979-not-a-group-by-expression) – Ben Dec 10 '17 at 08:07

2 Answers2

2

You caNnot group because NAV_PER_SHARE is given per result. Did you mean

SUM(NAV_PER_SHARE*OUTSTANDING_SHARES)

?

Howard
  • 38,639
  • 9
  • 64
  • 83
2

From what it looks like, the solution would be to use a subquery.

SELECT ORDER_CATEGORY, NAV_PER_SHARE * SUM_OF_OS
FROM (SELECT ORDER_CATEGORY, SUM(OUTSTANDING_SHARES) SUM_OF_OS
      GROUP BY ORDER_CATEGORY);

Although, I'm not sure how your one query works without a FROM keyword.

FThompson
  • 28,352
  • 13
  • 60
  • 93
Thomas
  • 21
  • 1