Question: Table Creation
--------------

```
CREATE TABLE demo
( 
  id number(10) NOT NULL,
  ct number(10) ,
  CONSTRAINT id_pk PRIMARY KEY (id)
);

```

ROWS INSERTION
--------------

```
insert into demo(id,ct) values(1,4);

insert into demo(id,ct) values(2,2);

insert into demo(id,ct) values(3,3);

insert into demo(id,ct) values(4,2);

select * from demo

select q2.id,q2.ct from (
 select a1.id id,(SELECT sum(ct) from demo a2 
 where a2.id = a1.id) ct 
 from demo a1 ) q2 
group by q2.id

```

the above query is failing in one DB 

> 
> **ORA-00979: not a GROUP BY expression
>  00979. 00000 - "not a GROUP BY expression"
>  \*Cause:  
> 
>  \*Action: Error at Line: 1 Column: 14**
> 
> 
> 

In another db it is returning the results with counts

DB Version : 11.2.0.4.0

Both databases are running on same version. The results of the below query is same in both DBs

```
SELECT * FROM PRODUCT_COMPONENT_VERSION;

```

Answer: 
The `api-version` query parameter is used by the Azure AD Graph API. This is a different API than Microsoft Graph. There is a lot of functional overlap (Azure AD Graph is slowly being migrated over to Microsoft Graph) but they use entirely different entities and calling conventions.

In order to call the `/beta` endpoint using the [Microsoft Graph .NET Client Library](https://github.com/microsoftgraph/msgraph-sdk-dotnet), you need to change the `BaseUrl` of the client:

```cs
graphClient.BaseUrl = "https://graph.microsoft.com/beta";
var pictureStream = await graphClient.Me.Photo.Content.Request().GetAsync();

```

Some important notes about the `/beta` endpoint:

1. It isn't supported and isn't suitable for production. So don't do that. Or at least don't tell anyone and don't call Support if it stops working. ;-)
2. The .NET Client uses objects constructed off the production metadata. This means that any entities, actions or properties that were added in `/beta` don't exist in the models shipped with the SDK.
3. The .NET Client will ignore any values returned by Microsoft Graph that it doesn't expect to see. So if an endpoint returns a property that wasn't included in the production metadata (see #2), it will simply be ignored.

So long as you're only using a `/beta` to gain functionality but still expecting `/v1.0` results, it should work okay. Photos for example only look at Exchange in v1.0 but look in both Exchange **and** Active Directory but still return the same result. In theory this means you should be able to swap `/beta` for `/v1.0` without a problem.
There is an official beta client for Graph API now:
<https://github.com/microsoftgraph/msgraph-beta-sdk-dotnet>