Считайте строки итогов с группой

В прошлом программам экранного доступа и другому программному обеспечению доступности было тяжело обрабатывать таблицы эффективным способом. В некоторой степени это стало обработанным в программах экранного доступа читателя, переключающегося между режимом "таблицы" и режимом "расположения" на основе того, что это видело в таблице. Это было часто неправильно, и таким образом, пользователи должны были вручную переключить режим при навигации через таблицы. В любом случае, большое, часто очень вложенные таблицы были, и в большой степени, являются все еще очень трудными перейти посредством использования программы экранного доступа.

то же верно, когда отделения или другие элементы блочного уровня используются для воссоздания таблиц и высоко вкладываются. Цель отделений состоит в том, чтобы использоваться в качестве форматирования и элемента макета, и как таковая, предназначаются используемые, чтобы содержать подобную информацию и разметить его на экране для визуальных пользователей. Когда программа экранного доступа встречается со страницей, она часто игнорирует любую информацию макета, оба CSS, базирующиеся, а также базирующийся атрибут HTML (Это не верно для всех программ экранного доступа, но для самых популярных, как JAWS, Windows Eyes и Косатка для Linux, который это).

С этой целью, табличные данные, то есть данные, которые имеют логический смысл быть заказанным в двух или больше размерах со своего рода заголовками, лучше всего помещаются в таблицы и отделения использования для управления расположением содержания на странице. (другой способ думать, что "табличные данные", состоит в том, чтобы попытаться потянуть его в форме графика..., если Вы не можете, это, вероятно, лучше всего не представлено в таблице)

Наконец, с основанным на таблице расположением, для достижения мелкомодульного управления положения элементов на странице, очень вложенные таблицы часто используются. Это имеет два эффекта: 1.) Увеличенный размер кода для каждой страницы - Начиная с навигации и общей структуры часто делается с таблицами, тот же код отправляется по сети за каждым запросом, тогда как div/css базировался, расположение вытягивает css файл по однажды, и затем использует менее многословные отделения 2.) Очень вложенные таблицы берут намного дольше для браузера клиента для рендеринга, ведя к немного более медленному времени загрузки.

В обоих случаях, увеличение "последней мили" пропускная способность, а также намного более быстрые персональные компьютеры смягчает эти факторы, но тем не менее, они все еще - существующие проблемы для многих сайтов.

Со всем этим в памяти, как другие сказали, таблицы легче, потому что они более ориентированы на сетку, допуская менее мысль. Если рассматриваемый сайт, как ожидают, не будет вокруг длинного, или не будет поддерживаться, могло бы иметь смысл делать то, что является самым легким, потому что это могло бы быть самым экономически эффективным. Однако, если ожидаемая база пользователей могла бы включать существенную часть людей с ограниченными возможностями, или если сайт будет поддерживаться другими в течение долгого времени, проводя время впереди, чтобы сделать, вещи кратким, доступным способом могут выплата больше в конце.

6
задан Vaccano 16 July 2009 в 22:28
поделиться

2 ответа

SELECT COUNT(*)
FROM (
   SELECT TRACKING_NUM
   FROM Orders
   GROUP BY TRACKING_NUM
   HAVING count(distinct ORDER_NUM) = 4) AS Agg
15
ответ дан 8 December 2019 в 13:48
поделиться
SELECT OrderCount AS 'Total Orders', COUNT(TRACKING_NUM) AS 'Tracking Num Count' 
FROM (
   SELECT DISTINCT TRACKING_NUM, COUNT(DISTINCT ORDER_NUM) AS 'OrderCount'
   FROM Orders
   GROUP BY TRACKING_NUM
) AS tblOrdersPerTrackingNum

Это даст вам только подсчеты для ваших TRACKING_NUM, как вы хотели, а также подсчеты для любой другой суммы общих заказов (а не только с количеством заказов = 4).

(Похоже, ваш запрос предназначен для какого-то отчета - если это так, и если он будет выполняться часто, когда производительность является проблемой, как вы предложили, - вы также можете получить все свои значения из одного запроса, вместо того, чтобы изменять или параметрировать счетчик, который вас интересует, и повторно запускать его несколько раз (даже если это было автоматизировано). Намного лучше позволить серверу сделать все это за вас один раз. Простите мое предположение, если это не то, над чем вы работали.)

Я знаю, что это не совсем то, о чем вы спрашивали ... Ремус Русану уже это понял, но вы действительно просили «любые предложения».

2
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: