Page tree

Release 5.0.1


Contents:

   

Contents:


Sorts the dataset based on one or more columns in ascending or descending order. You can also sort based on the order of rows when the dataset was created. 

Limitations:

NOTE: This transform is intended primarily for use in the Transformer page. Sort order may not be preserved in the output files.

  • If you generate a new sample after a sort transform has been applied, the sort order is not retained. You can re-apply the sort step, although the following limitations still apply.
  • Sort order is not preserved on output in the following conditions:
    • Output is a multi-part file.
    • Output is generated by a running environment that does not support sorting.

Basic Usage

sort order:LastName

Output: Dataset is sorted in alphabetically ascending order based on the values in the LastName column, assuming that the values are strings.

Syntax and Parameters

sort order:column_ref

TokenRequired?Data TypeDescription
sortYtransformName of the transform
orderYstringName of column or columns by which to sort

For more information on syntax standards, see Language Documentation Syntax Notes.

order

Identifies the column or set of columns by which the dataset is sorted.
  • Multiple column names can be separated by commas. 
  • Ranges of columns cannot be specified.

The order can be reversed by adding a negative sign in front of the column name: 

sort order: -ProductName

Multi-column sorts: You can also specify multi-column sorts. The following example sorts first by the inverse order of ProductName, and within that sort, rows are sorted by ProductColor:

sort order: -ProductName,ProductColor

Sort by original row numbers: As an input value, this parameter also accepts the SOURCEROWNUMBER function, which performs the sort according to the original order of rows when the dataset was created.

sort order: SOURCEROWNUMBER()

See SOURCEROWNUMBER Function.

 

Usage Notes:

Required?Data Type
YesString (column name)

Data is sorted based on the data type of the source:   

Data Type of SourceSort Order
IntegerNumerical
DecimalNumerical
DatetimeNumerical
All othersString

Examples


Tip: For additional examples, see Common Tasks.

Example - sort methods

Source:

The column without a name identifies the original row numbers. In the data grid, this information is available when you hover over the black dot to the left of a row of data. 

 CustIdFirstNameLastNameCityStateLastOrder
11001SkipJonesSan FranciscoCA25
21002AdamAllenOaklandCA1099
31003DavidWigginsOaklandMI125.25
41004AmandaGreenDetroitMI452.5
51005ColonelMustardLos AngelesCA950
61006PaulineHallSaginawMI432.22
71007SarahMillerCheyenneWY724.22
81008TeddySmithJuneauAK852.11
91009JoelleHigginsSacramentoCA100

Transform:

First, you might want to clean up the number formatting in the lastOrder column. The following formats the values to always include two digits after the decimal point:

set col:LastOrder value:NUMFORMAT(LastOrder, '####.00')

Now, you're interested in the highest value for your customers' most recent orders. You can apply the following sort:

sort order: -LastOrder

Rows are sorted by the LastOrder column in descending order (largest to smallest):

 CustIdFirstNameLastNameCityStateLastOrder
21002AdamAllenOaklandCA1099.00
51005ColonelMustardLos AngelesCA950.00
81008TeddySmithJuneauAK852.11
71007SarahMillerCheyenneWY724.22
41004AmandaGreenDetroitMI452.50
61006PaulineHallSaginawMI432.22
31003DavidWigginsOaklandMI125.25
91009JoelleHigginsSacramentoCA100.00
11001SkipJonesSan FranciscoCA25.00

The above row numbers represent the original order of the rows. Now, you want to get your data geographically organized by sorting by city and state. You can perform multi-column sorts such as the following, which sorts first by State and then by City columns:

sort order: State,City

In the generated output, the data is first sorted by the State value. Each set of rows within the same State value is also sorted by the City value.

 CustIdFirstNameLastNameCityStateLastOrder
81008TeddySmithJuneauAK852.11
51005ColonelMustardLos AngelesCA950.00
21002AdamAllenOaklandCA1099.00
91009JoelleHigginsSacramentoCA100.00
11001SkipJonesSan FranciscoCA25.00
41004AmandaGreenDetroitMI452.50
31003DavidWigginsOaklandMI125.25
61006PaulineHallSaginawMI432.22
71007SarahMillerCheyenneWY724.22

Example - Sort by original row numbers

Source:

You have imported the following racer data on heat times from a CSV file. When loaded in the Transformer page, it looks like the following:

(rowId)column2column3column4column5
1RacerHeat 1Heat 2Heat 3
2Racer X37.2238.2237.61
3Racer Y41.33DQ38.04
4Racer Z39.2739.0438.85

In the above, the (rowId) column references the row numbers displayed in the data grid; it is not part of the dataset. This information is available when you hover over the black dot on the left side of the screen.

Transform:

You have examined the best performance in each heat according to the sample. You then notice that the data contains headers, but you forget how it was originally sorted. The data now looks like the following:

(rowId)column2column3column4column5
1Racer Y41.33DQ38.04
2RacerHeat 1Heat 2Heat 3
3Racer X37.2238.2237.61
4Racer Z39.2739.0438.85

While you can undo your sort steps to return to the original sort order, this approach works best if you did not include other steps in between that are based on the sort order.

If you have steps that require retaining your sort steps, you can revert to the original sort order by adding this transform step:

sort order:SOURCEROWNUMBER()

Then, you can create the header with the following simple step:

header

If you need to retain the sort order and not revert to the original, you can do the following to the previous example data:

header sourcerownumber:1


Results:

After you have applied the last header transform, your data should look like the following:

(rowId)RacerHeat_1Heat_2Heat_3
3Racer Y41.33DQ38.04
2Racer X37.2238.2237.61
4Racer Z39.2739.0438.85

You can sort by the Racer column in ascending order to return to the original sort order.

See Also for Sort Transform:

This page has no comments.