Subset

relational-functions subset

Starting form version 8.6.0, we advice to use the select_with_attr_by_org_rel or 
select_with_attr_by_cond functions in stead of the subset function, for 2 reasons:
- it is easier to configure new attributes for the resulting domain.
- the select_with_attr_by_org_rel function results in a subitem org_rel, meeting our naming conventions.

In the future the subset function becomes obsolete.

syntax

  • subset(condition)

definition

subset(condition) results in a new domain-unit with a relation to the entries of the domain unit of the condition, for which the values of the condition argument are true.

The resulting value-type of the domain unit is derived from the domain unit of the condition argument:

  • uint32 for conditions with uint32, boolean, spoint or wpoint value-type
  • uint8 for conditions with uint8 value type
  • uint16 for conditions with uint16 value type
  • uint64 for conditions with uint64, ipoint or upoint value type

The explicit subset_uint32, subset_uint16 and subset_uint8 functions can be used in the same manner as the subset function, to create a new domain unit with an explicit value type.

description

The subset function generates a subitem, named Nr_OrgEntity. This data-item contains the relation towards the domain unit of the condition argument.

The Nr_OrgEntity data-item can be used in a lookup function to relate attributes to the new domain unit, see the example.

See this overview for when to choose which selection operator is feasable.

applies to

  • condition must be a boolean attribute or subexpression resulting in boolean values.

selecting attributes of a table

The subset function results in a new domain unit. Attributes for this new domain need to be configured explicitly, see the example.

It is possible to configure all attributes (e.g. read from a .csv file) for the Subset domain unit with a script example presented below in the example, selecting all attributes paragraph.

example

unit<uint32> ZHCities := subset(City/RegionCode == 200)
{
   attribute<string> name := City/Name[Nr_OrgEntity];
}
City/RegionCode City/Name
100 Amsterdam
200 Rotterdam
300 Utrecht
200 Den Haag
400 Eindhoven
null Haarlem
400 Tilburg

domain City, nr of rows = 7

ZHCities/nr_OrgEntity ZHCities/name
1 Rotterdam
3 Den Haag

domain ZHCities, nr of rows = 2

example, selecting all attributes

For this purpose we advice the new select_with_attr_by_org_rel or select_with_attr_by_cond functions.

see also