# LogicalTableProperty

<p>A <i>logical table</i> is a unit that joins and that data             transformations operate on.

A logical table has a source, which can be either a physical
            table or result of a join. When a logical table points to a physical table, the logical
            table acts as a mutable copy of that physical table through transform operations.</p>

- Source: Generated code
- Type last changed: v2.224.0 · 13 Nov 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_quicksight as quicksight } from 'aws-cdk-lib';
const logicalTableProperty: quicksight.CfnDataSet.LogicalTableProperty = {
  alias: 'alias',
  source: {
    dataSetArn: 'dataSetArn',
    joinInstruction: {
      leftOperand: 'leftOperand',
      onClause: 'onClause',
      rightOperand: 'rightOperand',
      type: 'type',

      // the properties below are optional
      leftJoinKeyProperties: {
        uniqueKey: false,
      },
      rightJoinKeyProperties: {
        uniqueKey: false,
      },
    },
    physicalTableId: 'physicalTableId',
  },

  // the properties below are optional
  dataTransforms: [{
    castColumnTypeOperation: {
      columnName: 'columnName',
      newColumnType: 'newColumnType',

      // the properties below are optional
      format: 'format',
      subType: 'subType',
    },
    createColumnsOperation: {
      columns: [{
        columnId: 'columnId',
        columnName: 'columnName',
        expression: 'expression',
      }],

      // the properties below are optional
      alias: 'alias',
      source: {
        transformOperationId: 'transformOperationId',

        // the properties below are optional
        columnIdMappings: [{
          sourceColumnId: 'sourceColumnId',
          targetColumnId: 'targetColumnId',
        }],
      },
    },
    filterOperation: {
      conditionExpression: 'conditionExpression',
      dateFilterCondition: {
        columnName: 'columnName',
        comparisonFilterCondition: {
          operator: 'operator',

          // the properties below are optional
          value: {
            staticValue: 'staticValue',
          },
        },
        rangeFilterCondition: {
          includeMaximum: false,
          includeMinimum: false,
          rangeMaximum: {
            staticValue: 'staticValue',
          },
          rangeMinimum: {
            staticValue: 'staticValue',
          },
        },
      },
      numericFilterCondition: {
        columnName: 'columnName',
        comparisonFilterCondition: {
          operator: 'operator',

          // the properties below are optional
          value: {
            staticValue: 123,
          },
        },
        rangeFilterCondition: {
          includeMaximum: false,
          includeMinimum: false,
          rangeMaximum: {
            staticValue: 123,
          },
          rangeMinimum: {
            staticValue: 123,
          },
        },
      },
      stringFilterCondition: {
        columnName: 'columnName',
        comparisonFilterCondition: {
          operator: 'operator',

          // the properties below are optional
          value: {
            staticValue: 'staticValue',
          },
        },
        listFilterCondition: {
          operator: 'operator',

          // the properties below are optional
          values: {
            staticValues: ['staticValues'],
          },
        },
      },
    },
    overrideDatasetParameterOperation: {
      parameterName: 'parameterName',

      // the properties below are optional
      newDefaultValues: {
        dateTimeStaticValues: ['dateTimeStaticValues'],
        decimalStaticValues: [123],
        integerStaticValues: [123],
        stringStaticValues: ['stringStaticValues'],
      },
      newParameterName: 'newParameterName',
    },
    projectOperation: {
      alias: 'alias',
      projectedColumns: ['projectedColumns'],
      source: {
        transformOperationId: 'transformOperationId',

        // the properties below are optional
        columnIdMappings: [{
          sourceColumnId: 'sourceColumnId',
          targetColumnId: 'targetColumnId',
        }],
      },
    },
    renameColumnOperation: {
      columnName: 'columnName',
      newColumnName: 'newColumnName',
    },
    tagColumnOperation: {
      columnName: 'columnName',
      tags: [{
        columnDescription: {
          text: 'text',
        },
        columnGeographicRole: 'columnGeographicRole',
      }],
    },
    untagColumnOperation: {
      columnName: 'columnName',
      tagNames: ['tagNames'],
    },
  }],
};
```

## Properties

- `alias`: string (required) — <p>A display name for the logical table.</p>.

- `dataTransforms`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDataSet.TransformOperationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_quicksight.CfnDataSet.TransformOperationProperty.html)[] — <p>Transform operations that act on this logical table.

  For this structure to be valid, only one of the attributes can be non-null. </p>

- `source`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDataSet.LogicalTableSourceProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_quicksight.CfnDataSet.LogicalTableSourceProperty.html) (required) — <p>Information about the source of a logical table.

  This is a variant type structure. For
              this structure to be valid, only one of the attributes can be non-null.</p>
