Przeskocz do opisu głównego

Przykłady agregacji danych

Info

Poniżej przykłady realizacji agregacji danych, które wykonano za pośrednictwem usługi CaseSearchExtRest#groupByQuery(POST). Składnia klauzuli Group By została opisana w artykule Zapytania indeksu Lucene. Przykłady zrealizowano przy wykorzystaniu narzędzia SoapUI.

Przykład 1

Zliczanie spraw, utworzonych w danym dniu.

ignoreCaseHeaderInResponse

Aby uprościć prezentację wyniku w obiekcie kontekstu ustawiono parametr ignoreCaseHeaderInResponse na wartość true (zignoruj w odpowiedzi nagłówek danych). Zobacz artykuł Kontekst żądania usług SOAP/REST.

image2022-6-28_15-59-41

Treść żądania wysłanego do usługi
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 100000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"query": "mrc_status: A",
"groupByClause": "trunc(mrc_createDate, DD) as createDatePerMonth, count(1) as count",
"filterClause": null,
"additionalDateRange": "mrc_createDate:[946681200000 TO 1564608394143]",
"page": {
"size": 60,
"number": 1
},
"resultTypeName": null,
"resultPkPropertyName": null
}

Przykład 2

Wykorzystanie funkcji agregujących SUM, MAX, MIN, AVG (zobacz Funkcje zliczające (agregujące)).

ignoreCaseHeaderInResponse

Aby uprościć prezentację wyniku w obiekcie kontekstu ustawiono parametr ignoreCaseHeaderInResponse na wartość true (zignoruj w odpowiedzi nagłówek danych). Zobacz artykuł Kontekst żądania usług SOAP/REST.

image2022-6-28_16-3-38

Treść żądania wysłanego do usługi
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 100000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"query": "mrc_status: A",
"groupByClause": "id, sum(months.costs) as sum, max(months.costs) as max, min(months.costs) as min, avg(months.costs) as avg",
"filterClause": null,
"additionalDateRange": "mrc_createDate:[946681200000 TO 1564608394143]",
"page": {
"size": 60,
"number": 1
},
"resultTypeName": null,
"resultPkPropertyName": null
}

Przykład 3

Wykorzystanie funkcji DECODE wraz z agregacją danych COUNT (zliczaniem danych).

ignoreCaseHeaderInResponse

Aby uprościć prezentację wyniku w obiekcie kontekstu ustawiono parametr ignoreCaseHeaderInResponse na wartość true (zignoruj w odpowiedzi nagłówek danych). Zobacz artykuł Kontekst żądania usług SOAP/REST.

image2022-6-28_16-11-15

Treść żądania wysłanego do usługi

{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 100000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"query": "mrc_status: A",
"groupByClause": "id, decode(months.costs, \"[* TO 125000]\", \"low\", \"[125001 TO 140000]\", \"medium\", \"high\") as cost, count(*) as count",
"filterClause": null,
"additionalDateRange": "mrc_createDate:[946681200000 TO 1564608394143]",
"page": {
"size": 60,
"number": 1
},
"resultTypeName": null,
"resultPkPropertyName": null
}

Przykład 4

Wykorzystanie funkcji CONCAT.

ignoreCaseHeaderInResponse

Aby uprościć prezentację wyniku w obiekcie kontekstu ustawiono parametr ignoreCaseHeaderInResponse na wartość true (zignoruj w odpowiedzi nagłówek danych). Zobacz artykuł Kontekst żądania usług SOAP/REST.

image2022-6-28_16-13-4

Treść żądania wysłanego do usługi
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 100000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"query": "mrc_typeCodeValue:ElixClient",
"groupByClause": "concat(clientID, \": \", clientName) as acronym",
"filterClause": null,
"additionalDateRange": null,
"page": {
"size": 60,
"number": 1
},
"resultTypeName": null,
"resultPkPropertyName": null
}

Przykład 5

Wykorzystanie funkcji DECODE wraz z funkcją MATH (jako argument funkcji DECODE) oraz agregacją danych COUNT (zliczaniem danych).

ignoreCaseHeaderInResponse

Aby uprościć prezentację wyniku w obiekcie kontekstu ustawiono parametr ignoreCaseHeaderInResponse na wartość true (zignoruj w odpowiedzi nagłówek danych). Zobacz artykuł Kontekst żądania usług SOAP/REST.

image2022-6-28_16-15-41

Treść żądania wysłanego do usługi
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 100000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"query": "mrc_typeCodeValue:Quarter",
"groupByClause": "id, decode(MATH(mrc_endDate - mrc_createDate), \"[* TO -1]\", \"still open\", \"[0 TO 86400000]\", \"1 day\", \"[86400001 TO 172800000]\", \"2 days\", \"very long\") as cost, count(*) as count",
"filterClause": null,
"additionalDateRange": "mrc_createDate:[946681200000 TO 1564608394143]",
"page": {
"size": 60,
"number": 1
},
"resultTypeName": null,
"resultPkPropertyName": null
}